os.path模块提供了一系列与文件路径和文件名有关的函数。接下来和大家分享一些比较常用的函数。
os.path.abspath(path)函数返回指定路径的绝对标准路径。
例如:
a = os.path.abspath('test.txt')
print a
b = os.path.abspath('.')
print b
上面一段代码的打印结果是:
/home/jackeyzhe/PycharmProjects/showMe/com/code001/test.txt
/home/jackeyzhe/PycharmProjects/showMe/com/code001
os.path.basename(path)函数用于获取路径的basename,例如a = os.path.basename('/home/jackeyzhe/PycharmProjects/showMe/com/code001/test.txt')
得到的a应为test.txt。
需要注意的是,这里的basename函数与Unix的basename程序有所不同,对于‘/home/jackeyzhe/PycharmProjects/showMe/com/code001/’Unix的basename程序返回的是‘code001’而该函数返回的是一个空字符串。
os.path.commonprefix(list)函数返回list中所有路径的最长的公共根目录(逐个字符判断)
例如代码
l = {'/home/jackeyzhe/PycharmProjects/showMe/com/code001/test.txt', '/home/jackeyzhe/examples.desktop', '/home'}
s = os.path.commonprefix(l)
返回的s为’/home’。该函数的返回值有可能是一个非法的路径,因为它是逐个字符比较。
os.path.dirname(path)函数返回路径的目录。
它与basename函数的返回值分别是split函数的返回值的两个元素。
path1 = '/home/jackeyzhe/PycharmProjects/showMe/com/code001/test.txt'
path2 = '/home/jackeyzhe/PycharmProjects/showMe/com/code001'
a1 = os.path.basename(path1)
b1 = os.path.basename(path2)
print a1
print b1
a2 = os.path.dirname(path1)
b2 = os.path.dirname(path2)
print a2
print b2
a = os.path.split(path1)
b = os.path.split(path2)
print a
print b
结果:
test.txt
code001
/home/jackeyzhe/PycharmProjects/showMe/com/code001
/home/jackeyzhe/PycharmProjects/showMe/com
('/home/jackeyzhe/PycharmProjects/showMe/com/code001', 'test.txt')
('/home/jackeyzhe/PycharmProjects/showMe/com', 'code001')
os.path.exists(path)函数用于验证是否指定路径是否存在。如果返回True,表示存在;否则不存在。在有些平台中,如果路径无权限执行os.stat()函数,即使路径存在,exists函数仍会返回False。
os.path.expanduser(path)函数可以将~或~user替换为用户工作路径。
os.path.expandvars(path)函数可以替换路径中的环境变量。
os.path.getatime(path)函数返回路径的最后访问时间。
os.path.getmtime(path)函数返回路径的最后修改时间。
os.path.getsize(path)函数返回指定路径的大小,单位为byte,如果路径不存在或不可访问,则抛出os.error异常。
os.path.isabs(path)函数用于判断是否是绝对路径,Unix的绝对路径以斜线开头,而Windows的绝对路径以反斜线开头。
os.path.isfile(path)函数用于判断指定路径是否是文件。
os.path.isdir(path)函数用于判断指定路径是否是目录。
os.path.islink(path)函数用于判断指定路径是否是符号链接。
os.path.normpath(path)函数返回标准路径,A//B, A/B/, A/./B 和 A/foo/../B都变成了A/B。
os.path.samefile(path1, path2)函数用于判断两个路径是否指向同一文件。
os.path.walk(path, visit, arg)函数会逐个访问指定目录下的子目录,但符号链接不会被当做子目录进行访问。
os.pah模块的常用方法就是这些,想要熟悉这些方法,还要花时间进行大量的练习。