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

作者:

文章目录
  • 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
  • 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
  • 跨平台兼容性: 自动处理不同操作系统的路径分隔符(/ 和 ) 正确处理网络路径(\serversharefile) 特殊文件处理: 隐藏文件(如 .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获取文件路径、文件名、后缀名的实例 Python中从文件路径中提取文件名及扩展名的多种方法 python文件名和文件路径操作实例 Python中查看文件名和文件路径
  • 目录
    • 方法一:使用 os.path 模块(传统方法)
    • 方法二:使用 pathlib 模块(Python 3.4+ 推荐)
    • 关键特性说明:
    • 扩展功能:

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

    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
    

    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
    

    跨平台兼容性

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

    特殊文件处理

    • 隐藏文件(如 .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获取文件路径、文件名、后缀名的实例
    • Python中从文件路径中提取文件名及扩展名的多种方法
    • python文件名和文件路径操作实例
    • Python中查看文件名和文件路径

    站内搜索