Python学习笔记(5):os.path模块

简介

os.path模块提供了一系列与文件路径和文件名有关的函数。接下来和你们分享一些比较经常使用的函数。web

abspath

os.path.abspath(path)函数返回指定路径的绝对标准路径。
例如:bash

a = os.path.abspath('test.txt')
print a
b = os.path.abspath('.')
print b

上面一段代码的打印结果是:svg

/home/jackeyzhe/PycharmProjects/showMe/com/code001/test.txt
/home/jackeyzhe/PycharmProjects/showMe/com/code001

basename

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’而该函数返回的是一个空字符串。函数

commonprefix

os.path.commonprefix(list)函数返回list中全部路径的最长的公共根目录(逐个字符判断)
例如代码ui

l = {'/home/jackeyzhe/PycharmProjects/showMe/com/code001/test.txt', '/home/jackeyzhe/examples.desktop', '/home'}
s = os.path.commonprefix(l)

返回的s为’/home’。该函数的返回值有多是一个非法的路径,由于它是逐个字符比较。lua

dirname

os.path.dirname(path)函数返回路径的目录。
它与basename函数的返回值分别是split函数的返回值的两个元素。spa

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

结果:code

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')

exists

os.path.exists(path)函数用于验证是否指定路径是否存在。若是返回True,表示存在;不然不存在。在有些平台中,若是路径无权限执行os.stat()函数,即便路径存在,exists函数仍会返回False。orm

expanduser

os.path.expanduser(path)函数能够将~或~user替换为用户工做路径。xml

expandvars

os.path.expandvars(path)函数能够替换路径中的环境变量。

getatime

os.path.getatime(path)函数返回路径的最后访问时间。

getmtime

os.path.getmtime(path)函数返回路径的最后修改时间。

getsize

os.path.getsize(path)函数返回指定路径的大小,单位为byte,若是路径不存在或不可访问,则抛出os.error异常。

isabs

os.path.isabs(path)函数用于判断是不是绝对路径,Unix的绝对路径以斜线开头,而Windows的绝对路径以反斜线开头。

isfile

os.path.isfile(path)函数用于判断指定路径是不是文件。

isdir

os.path.isdir(path)函数用于判断指定路径是不是目录。

os.path.islink(path)函数用于判断指定路径是不是符号连接。

normpath

os.path.normpath(path)函数返回标准路径,A//B, A/B/, A/./B 和 A/foo/../B都变成了A/B。

samefile

os.path.samefile(path1, path2)函数用于判断两个路径是否指向同一文件。

walk

os.path.walk(path, visit, arg)函数会逐个访问指定目录下的子目录,但符号连接不会被当作子目录进行访问。

os.pah模块的经常使用方法就是这些,想要熟悉这些方法,还要花时间进行大量的练习。