问题
使用路径名来获取文件名,目录名,绝对路径等等。
解决方案
使用 os.path
模块中的函数来操作路径名。 下面是一个交互式例子来演示一些关键的特性:
import os
path = '/Users/xz/test/1.txt'
# 获取文件名称
print(os.path.basename(path))
1.txt
# 获取绝对路径名称
print(os.path.dirname(path))
/Users/xz/test
# 组合绝对路径(组成新的路径)
print(os.path.join('item', 'data', os.path.basename(path)))
item/data/1.txt
relative_path = '~/test/1.txt'
# 获取绝对路径
print(os.path.expanduser(relative_path))
/Users/xz/test/1.txt
# 拆分文件路径
print(os.path.splitext(relative_path))
('~/test/1', '.txt')
讨论
对于任何的文件名操作,都应该使用 os.path
模块,而不是使用标准字符串操作来构造自己的代码。
特别是考虑到代码的可移植性,因为 os.path
模块知道Unix
和Windows
系统之间的差异,并且能够可靠地处理类。
网友评论