前言:
os.path 模块是系统路径操作模块,但实际的原理可以把它认为是处理包含斜杠("/")和反斜杠("\")字符串的模块,其中,斜杠("/")是 linux 系统下的路径分隔符,和反斜杠("\")是 windows 系统下的路径分隔符。
也就是说,只要提供一个包含斜杠和反斜杠的字符串,os.path 模块都能处理,哪怕该字符串不是一个有效的真正路径,因为 os.path 模块的源码实现就是根据操作系统来处理斜杠和反斜杠的操作的。
下面逐一分析 os.path 模块下各个常用函数作用
一、操作类函数
os.path.split(path)
路径切割函数,这个函数会找到 path 的最后一个斜杠并对这个斜杠的两边字符串进行切割,得到两部分:斜杠之前的部分和斜杠之后的部分,然后把这两部分组成一个元组而返回,比如:
os.path.split('/python/demo/test.py') >> ('/python/demo', 'test.py') os.path.split('/python/demo/') >> ('/python/demo', '') |
从上面的例子可以看出:如果路径字符串的最后一个斜杠没有内容(只提供目录路径),那么返回的第二部分就是空字符串,而返回的这两部分内容分别叫 dirname 和 basename,分别对应 os.path.dirname() 函数和 os.path.basename()函数:
os.path.dirname('/python/demo/test.py') >> /python/demo os.path.basename('/python/demo/test.py') >> test.py |
我们可以看一下python源码里面的实现:
# Return the tail (basename) part of a path.
def basename(p):
"""Returns the final component of a pathname"""
return split(p