Python 取文件名

在我们编写程序时,经常需要从文件路径中提取文件名,而Python提供了一些函数和方法来方便地实现这个功能。本文将详细介绍如何使用Python取得文件名。
一、os.path模块
在Python中,os.path模块为我们提供了一系列处理路径的函数。其中,os.path.basename()函数可以用于获取文件名。
import os
path = '/home/user/Documents/example.txt'
filename = os.path.basename(path)
print(filename)
代码运行结果:
example.txt
可以看到,通过调用os.path.basename()函数,我们成功地获取了文件名。
二、split()方法
除了使用os.path.basename()函数外,我们还可以使用字符串的split()方法来实现取得文件名的功能。
path = '/home/user/Documents/example.txt'
filename = path.split('/')[-1]
print(filename)
代码运行结果:
example.txt
通过调用split()方法,我们以路径分隔符/为分隔符,将路径字符串分割成多个子字符串,然后通过索引-1取得最后一个子字符串,即文件名。
三、os模块
除了使用os.path模块和字符串方法,我们还可以使用os模块中的os.path.splitext()函数来取得文件名。
import os
path = '/home/user/Documents/example.txt'
filename, extension = os.path.splitext(path)
print(filename)
代码运行结果:
/home/user/Documents/example
可以看到,通过调用os.path.splitext()函数,我们取得了不带扩展名的文件名。
四、PurePath类
在Python 3.4及以上的版本中,标准库pathlib提供了一个PurePath类,也可以用来获取文件名。
from pathlib import PurePath
path = PurePath('/home/user/Documents/example.txt')
filename = path.name
print(filename)
代码运行结果:
example.txt
可以看到,通过调用name属性,我们成功地获取了文件名。
五、文件路径包含中文
在处理文件路径时,有时可能会遇到文件路径中包含中文的情况。由于中文在不同的操作系统中的编码方式可能不同,因此在使用上述方法时可能会遇到编码问题。这时,我们可以通过以下方式解决中文路径的问题。
首先,将字节字符串转换为Unicode字符串:
path = b'/home/user/Documents/中文.txt'.decode('utf-8')
然后,继续使用上述方法获取文件名。
六、总结
本文介绍了使用Python取得文件名的几种方法,包括:
- 使用
os.path.basename()函数 - 使用字符串的
split()方法 - 使用
os.path.splitext()函数 - 使用
PurePath类
以上方法都能够有效地获取文件名,我们可以根据实际需求选择适合的方法。在处理文件路径时,若遇到中文路径,可以通过转换编码解决问题。
极客教程