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('_ex
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内容请搜索易盾网络以前的文章或继续浏览下面的相关文章希望大家以后多多支持易盾网络!