python 标准库原理与用法详解之os.path篇
os中的path
查看源码会看到,在os.py
中有这样几行
if 'posix' in _names: name = 'posix' linesep = '\n' from posix import * #省略若干代码 elif 'nt' in _names: from nt import * try: from nt import _exit __all__.append('_exit') except ImportError: pass import ntpath as path #。。。
由于我们是在windows(WindowsNT)中,所以打开ntpath.py
文件,可以看到开头就定义了8个成员变量
curdir = '.' #当前路径标识 pardir = '..' # extsep = '.' #扩展名分隔符 sep = '\\' pathsep = ';' #环境变量中路径的分隔符 altsep = '/' # defpath = '.;C:\\bin' #环境变量的存放位置 devnull = 'nul'
此外,还有一个名为supports_unicode_filenames
的布尔型成员变量,表示当前系统是否支持unicode的文件名。
可以理解为,path
中封装了一些和操作系统相关,并且在不同操作系统下代码不同的功能,下面默认from os.path import *
。
输入为路径字符串的单参函数
normpath()
\\a\\b
形式normcase()
\\a\\b
形式abspath()
X:\\a\\b
realpath()
relpath()
split()
例如
X:\\a\\b
会返回为X:\\a
和b
splitext()
splidrive()
basename()
split()[1]
dirname()
split()[0]
exists()
True
,否则False
lexists()
False
isabs()
isfile()
isdir()
islink()
ismount()
例如
os.path.ismount('C:\\')
,返回为Trueexpanduser()
~
对路径进行扩展expandvars()
部分示例
>>> from os.path import * >>> p = abspath('.') >>> p 'E:\\Documents\\00\\1022' >>> exists(p) True >>> splitdrive(p) ('E:', '\\Documents\\00\\1022') >>> isfile(p) False
与文件信息相关的单参函数
其输入必须为文件路径,不得为目录
~.getsize()
以字节为单位获取文件大小~.getctime()
获取文件创建时间,c即create~.getmtime()
获取文件最后修改时间,m即modify~.getatime()
获取文件最后访问时间,a即access
~.getsize()
~.getctime()
~.getmtime()
~.getatime()
输入为多个参数的函数
os.path.join
,用于拼接路径,超甜的一个功能。很多新手会为新建文件夹而困扰,很多时候不知道是写D:\test
还是D:\test\
,而在os.path.join
中这两者基本是等价的。
>>> os.path.join('test','\\test1','test2\\','test3') '\\test1\\test2\\test3'
~.samefile(p1, p2)
~.sameopenfile(fp1, fp2)
commonpath(list)
,commonprefix(list)
:返回list中所有path共有的最长路径,即距离所有文件和文件夹的共同父文件夹。二者区别在于,后者会在返回的路径加上\
。
到此这篇关于python 标准库原理与用法详解之os.path篇的文章就介绍到这了,更多相关python os.path内容请搜索hwidc以前的文章或继续浏览下面的相关文章希望大家以后多多支持hwidc!
【文章出处:http://www.nextecloud.cn/sin.html欢迎留下您的宝贵建议】