Python根据文件路径获取不带后缀名的文件名的两种方法

 更新时间:2025年10月11日 09:31:13   作者:detayun  
在 Python 中,你可以使用os模块或pathlib模块来根据文件路径获取文件名,这两个模块都提供了方便的方法来解析文件路径,下面通过代码示例为大家详细介绍一下,需要的朋友可以参考下

在 Python 中根据文件路径获取不带后缀名的文件名,可以使用以下两种主流方法,均支持跨平台路径处理(Windows/Linux/macOS):

方法一:使用 os.path 模块(传统方法)

import os

def get_filename_without_extension(file_path):
    """
    获取不带扩展名的文件名
    :param file_path: 文件路径(支持绝对路径/相对路径)
    :return: 不带扩展名的文件名
    """
    # 获取完整的文件名(包含扩展名)
    full_filename = os.path.basename(file_path)
    
    # 分离文件名和扩展名
    filename, extension = os.path.splitext(full_filename)
    
    return filename

# 使用示例
if __name__ == "__main__":
    path1 = "/home/user/images/landscape.jpg"
    path2 = "C:\\Documents\\report.docx"
    path3 = "./data/.gitignore"  # 测试隐藏文件
    
    print(get_filename_without_extension(path1))  # 输出: landscape
    print(get_filename_without_extension(path2))  # 输出: report
    print(get_filename_without_extension(path3))  # 输出: .gitignore

方法二:使用 pathlib 模块(Python 3.4+ 推荐)

from pathlib import Path

def get_filename_without_extension(file_path):
    """
    获取不带扩展名的文件名
    :param file_path: 文件路径
    :return: 不带扩展名的文件名
    """
    # 使用.stem属性直接获取无扩展名文件名
    return Path(file_path).stem

# 使用示例
if __name__ == "__main__":
    path1 = "/var/log/system.log"
    path2 = "relative/path/file.tar.gz"
    path3 = "no_extension_file"
    
    print(get_filename_without_extension(path1))  # 输出: system
    print(get_filename_without_extension(path2))  # 输出: file.tar
    print(get_filename_without_extension(path3))  # 输出: no_extension_file

关键特性说明:

跨平台兼容性

  • 自动处理不同操作系统的路径分隔符(/\
  • 正确处理网络路径(\\server\share\file

特殊文件处理

  • 隐藏文件(如 .gitignore)保留前导点
  • 无扩展名文件返回完整文件名
  • 多扩展名文件(如 .tar.gz)只移除最后一个扩展名

路径解析细节

  • os.path.basename() 提取路径中的文件名部分
  • os.path.splitext() 严格分离最后一个点后的扩展名
  • pathlib.Path.stem 直接获取无扩展名部分

边界情况处理

  • 空路径返回空字符串
  • 目录路径返回目录名(不含扩展名)
  • 纯扩展名文件(如 .htaccess)返回空字符串

扩展功能:

如果需要获取文件名中的所有部分(如处理复合扩展名),可以使用:

# 获取不带任何扩展名的完整基础名
base_name = Path(file_path).name.split('.')[0]

# 获取所有扩展名(适用于多扩展名场景)
suffixes = Path(file_path).suffixes  # 返回列表 ['.tar', '.gz']

根据实际需求选择方法:

  • 兼容旧版 Python使用 os.path 方案
  • 新项目推荐使用更直观的 pathlib 方案
  • 需要精确控制扩展名处理逻辑时可结合字符串操作

以上就是Python根据文件路径获取不带后缀名的文件名的两种方法的详细内容,更多关于Python文件路径获取文件名的资料请关注脚本之家其它相关文章!

相关文章

  • python GUI库图形界面开发之PyQt5控件数据拖曳Drag与Drop详细使用方法与实例

    python GUI库图形界面开发之PyQt5控件数据拖曳Drag与Drop详细使用方法与实例

    这篇文章主要介绍了python GUI库图形界面开发之PyQt5控件数据拖曳Drag与Drop详细使用方法与实例,需要的朋友可以参考下
    2020-02-02
  • 使用wxPython和OpenCV实现手势识别相机功能

    使用wxPython和OpenCV实现手势识别相机功能

    在这篇博客中,我将分享一个有趣的 Python 项目:通过 wxPython 创建图形界面,利用 OpenCV 的计算机视觉技术实现实时手势识别,以下是项目的完整实现过程,包括代码分析、使用说明和可能的优化建议,需要的朋友可以参考下
    2025-04-04
  • Python NLTK库全面解析及代码示例(NLP核心库)

    Python NLTK库全面解析及代码示例(NLP核心库)

    NLTK是Python中用于自然语言处理(NLP)的核心库,提供了丰富的文本处理工具、算法和语料库,下面通过实例代码场景分析给大家详细介绍Python NLTK库全面解析,感兴趣的朋友一起看看吧
    2025-06-06
  • yolov5返回坐标的方法实例

    yolov5返回坐标的方法实例

    这篇文章主要给大家介绍了关于yolov5返回坐标的相关资料,文中通过实例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2022-03-03
  • Python采集猫眼两万条数据 对《无名之辈》影评进行分析

    Python采集猫眼两万条数据 对《无名之辈》影评进行分析

    这篇文章主要给大家介绍了关于利用Python荣国采集两万条猫眼数据,对《无名之辈》影评进行分析的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧
    2018-12-12
  • Python一键搞定Excel数据自动分配

    Python一键搞定Excel数据自动分配

    这篇文章主要为大家详细介绍了Python一键搞定Excel数据自动分配的相关方法,可以轻松实现水果分箱,文中的示例代码讲解详细,有需要的小伙伴可以了解下
    2025-10-10
  • Python pip安装模块提示错误解决方案

    Python pip安装模块提示错误解决方案

    这篇文章主要介绍了Python pip安装模块提示错误解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-05-05
  • 浅析Flask如何使用日志功能

    浅析Flask如何使用日志功能

    这篇文章主要为大家详细介绍了Flask是如何使用日志功能的,文中的示例代码讲解详细,对我们深入了解Flask有一定的帮助,需要的可以参考一下
    2023-05-05
  • Python实现SMTP邮件发送

    Python实现SMTP邮件发送

    这篇文章主要介绍了基于python实现SMTP发送邮件教程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-06-06
  • Python中常用的数据结构与算法优化技巧指南

    Python中常用的数据结构与算法优化技巧指南

    Python是一种强大而灵活的编程语言,它提供了丰富的数据结构和算法库,但是在处理大规模数据或者需要高效运行的情况下,需要考虑一些优化技巧,本文将介绍一些Python中常用的数据结构与算法优化技巧,需要的朋友可以参考下
    2024-05-05

最新评论