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
类
以上方法都能够有效地获取文件名,我们可以根据实际需求选择适合的方法。在处理文件路径时,若遇到中文路径,可以通过转换编码解决问题。