在Python中获取路径中的文件名,可以通过os.path.basename()
、pathlib.Path().name
或字符串分割等方法实现,其中os.path
和pathlib
模块是最推荐的方式,因其简洁性和跨平台兼容性。
-
使用
os.path
模块
os.path.basename()
是Python标准库中的经典方法,直接返回路径的最后一部分(文件名)。例如:python复制
import os file_name = os.path.basename('/path/to/file.txt') # 输出:'file.txt'
此方法兼容Windows和Unix路径,且能正确处理特殊字符或无扩展名的文件。
-
使用
pathlib
模块(Python 3.4+)
pathlib
提供了面向对象的路径操作,通过Path().name
属性可直接获取文件名:python复制
from pathlib import Path file_name = Path('/path/to/file.txt').name # 输出:'file.txt'
若需分离扩展名,可结合
stem
属性(无扩展名)或suffix
属性(扩展名)。 -
字符串分割与正则表达式
对于简单路径,可通过字符串的split()
方法分割路径:python复制
file_name = '/path/to/file.txt'.split('/')[-1] # 输出:'file.txt'
正则表达式(如
r'[^/]+$'
)适用于复杂路径匹配,但通常不如前两种方法高效。 -
处理目录与批量操作
若需获取目录下所有文件名,可结合os.listdir()
或pathlib.Path().iterdir()
:python复制
import os files = [f for f in os.listdir('/path') if os.path.isfile(os.path.join('/path', f))]
总结:优先选择os.path
或pathlib
模块,兼顾代码可读性和功能性。对于特殊需求(如批量处理或复杂路径),可灵活组合其他方法。