规范化路径
使用join()或利用嵌入变量由单独的字符串组合路径时,得到的路径最后可能会有多余的分隔符或相对路径部分。使用normpath()可以清除这些内容。
新建ospath_normpath.py文件。
import os.path
PATHS = [
'one//two//three',
'one/./two/./three',
'one/../alt/two/three',
]
for path in PATHS:
print('{!r:>22} : {!r}'.format(path, os.path.normpath(path)))
以上代码输出结果为:
'one//two//three' : 'one\\two\\three'
'one/./two/./three' : 'one\\two\\three'
'one/../alt/two/three' : 'alt\\two\\three'
以上代码,估算并折叠os.curdir和os.pardir构成的路径段。
要把一个相对路径转换为一个绝对文件名,可以使用abspath()。
新建ospath_abspath.py文件。
import os
import os.path
os.chdir('/usr')
PATHS = [
'.',
'..',
'./one/two/three',
'../one/two/three',
]
for path in PATHS:
print('{!r:>21} : {!r}'.format(path, os.path.abspath(path)))
以上代码输出结果为:
'.' : '/usr'
'..' : '/'
'./one/two/three' : '/usr/one/two/three'
'../one/two/three' : '/one/two/three'
以上代码,结果是一个从文件系统树最顶层开始的完整的路径。