python如何从路径中获取文件名
- IT业界
- 2025-08-31 15:00:02

在Python中,从文件路径提取文件名可以通过多种方法实现,以下是常用的几种方式及对应的实现细节:
1. 使用os.path模块 获取完整文件名(含扩展名)
通过os.path.basename()可直接提取路径中的文件名(包含扩展名):
import os file_path = '/home/user/documents/file.txt' file_name = os.path.basename(file_path) # 输出: 'file.txt' [[1, 2, 4, 6, 9, 14, 15, 19]] 分离文件名与扩展名使用os.path.splitext()可将文件名和扩展名拆分为元组:
base_name, ext = os.path.splitext(file_name) print(base_name) # 输出: 'file' [[1, 6, 16, 20]] print(ext) # 输出: '.txt' [[1, 6]] 获取目录路径若需同时提取目录路径,可用os.path.dirname()或os.path.split():
dir_path = os.path.dirname(file_path) # 输出: '/home/user/documents' [[1, 9]] dir_tuple = os.path.split(file_path) # 输出: ('/home/user/documents', 'file.txt') [[1, 9]]2. 使用pathlib模块(推荐)
pathlib提供了更面向对象的路径处理方式,适用于Python 3.4+版本:
from pathlib import Path # 创建Path对象 path = Path('/home/user/documents/file.txt') # 获取完整文件名(含扩展名) file_name = path.name # 输出: 'file.txt' [[5, 15, 16, 20]] # 获取不带扩展名的文件名 file_stem = path.stem # 输出: 'file' [[5, 15, 16, 20]] # 获取扩展名 file_suffix = path.suffix # 输出: '.txt' [[5, 16]]3. 字符串处理方法(不推荐)
虽然可通过字符串分割实现,但跨平台兼容性较差:
# 方法1:使用split() path_str = 'C:/Users/Desktop/file.txt' file_name = path_str.split('/')[-1] # 输出: 'file.txt' [[9, 17]] # 方法2:使用rfind() index = path_str.rfind('/') file_name = path_str[index+1:] # 输出: 'file.txt' [[9]]4. 其他方法 正则表达式
复杂场景下可用正则匹配,但需谨慎处理特殊字符:
import re path_str = 'C:/Users/Desktop/tutorialsPoint.pdf' match = re.search(r'[\w-]+\.\w+$', path_str) if match: file_name = match.group() # 输出: 'tutorialsPoint.pdf' [[2, 4]] ntpath模块(跨平台兼容)在Windows和Linux环境下均适用:
import ntpath file_name = ntpath.basename(path_str) # 输出: 'tutorialsPoint.pdf' [[14]]总结 推荐方法:优先使用pathlib(简洁且跨平台)或os.path(兼容旧版本)。扩展名处理:需分离扩展名时,结合os.path.splitext()或pathlib.Path的stem属性。避免手动字符串处理:路径分隔符(/或\)可能因操作系统不同导致错误。
示例代码完整覆盖了文件名提取、目录分离及扩展名处理的需求,开发者可根据具体场景选择合适方法。
python如何从路径中获取文件名由讯客互联IT业界栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“python如何从路径中获取文件名”