首页 > 代码库 > python学习笔记-os.path
python学习笔记-os.path
os.path是python的一个内部组件用来操作文件的文件名,对文件名字符串进行解析。
在os模块中定义了一些变量名来帮助对文件名的处理主要有以下几个变量。
os.sep:文件分隔符
os.pardir:上级目录标志符为‘..‘
os.curdir:当前目录标识符为‘.‘
os.extsep:文件的后缀名分割符。
>>> print(os.sep) / >>> print(os.extsep) . >>> print(os.curdir) . >>> print(os.pardir) ..
path组件根据以上定义的变量来处理文件名字符串。path组件包含以下函数对文件名进行处理。
split()函数将文件名进行分割返回值为一个元组。返回的结果以最后的一个os.sep进行分割。
1 PATHS = [ 2 ‘/one/two/three‘, 3 ‘/one/two/three/‘, 4 ‘/‘, 5 ‘.‘, 6 ‘‘, 7 ] 8 for path in PATHS: 9 print(‘{!r:>17}:{}‘.format(path,os.path.split(path))) 10 11 12 ‘/one/two/three‘:(‘/one/two‘, ‘three‘) 13 ‘/one/two/three/‘:(‘/one/two/three‘, ‘‘) 14 ‘/‘:(‘/‘, ‘‘) 15 ‘.‘:(‘‘, ‘.‘) 16 ‘‘:(‘‘, ‘‘)
basename和dirname返回的结果二者结合在一起正好是split()返回的结果。basename返回的为上面元组的第二部分,dirname返回的是第一部分。
for path in PATHS: print(‘basename{!r:>17}:{}‘.format(path,os.path.basename(path))) print(‘dirname{!r:>17}:{}‘.format(path,os.path.dirname(path))) ------------------------------- basename ‘/one/two/three‘:three dirname ‘/one/two/three‘:/one/two basename‘/one/two/three/‘: dirname‘/one/two/three/‘:/one/two/three basename ‘/‘: dirname ‘/‘:/ basename ‘.‘:. dirname ‘.‘: basename ‘‘: dirname ‘‘:
splittext类似split()函数根据os.extsep中定义的字符分割字符串。
PATHS = [ ‘filename.txt‘, ‘filename‘, ‘/path/to/filename.txt‘, ‘/‘, ‘‘, ‘my-archive.tar.gz‘, ‘no-extension.‘, ] for path in PATHS: print(‘{!r:>21} : {!r}‘.format(path, os.path.splitext(path))) ------------------------------------------------------ ‘filename.txt‘ : (‘filename‘, ‘.txt‘) ‘filename‘ : (‘filename‘, ‘‘) ‘/path/to/filename.txt‘ : (‘/path/to/filename‘, ‘.txt‘) ‘/‘ : (‘/‘, ‘‘) ‘‘ : (‘‘, ‘‘) ‘my-archive.tar.gz‘ : (‘my-archive.tar‘, ‘.gz‘) ‘no-extension.‘ : (‘no-extension‘, ‘.‘)
commonprefix和commonpath函数返回一组文件名相同的前缀。不同之处在与commonprefix没有将路径的分割符考虑进来
paths = [‘/one/two/three/four‘, ‘/one/two/threefold‘, ‘/one/two/three/‘, ] print(‘commonprefix‘,os.path.commonprefix(paths)) commonprefix /one/two/three print(‘commonpath‘,os.path.commonpath(paths)) commonpath \one\two
构建文件路径的函数:
join将多个值拼接成一个文件路径,但是在值中不能包含/开头字符串,该函数会默认将前面的值给冲掉。
PATHS = [ (‘one‘, ‘two‘, ‘three‘), (‘/‘, ‘one‘, ‘two‘, ‘three‘), (‘/one‘, ‘/two‘, ‘/three‘), ] for path in PATHS: print(os.path.join(*path)) one/two/three /one/two/three /three
normalpath和abspath对输入的文件名进行格式化。
PATHS = [ ‘one//two//three‘, ‘one/./two/./three‘, ‘one/../alt/two/three‘, ] for path in PATHS: print(‘{!r:>22} : {!r}‘.format(path, os.path.normpath(path))) for path in PATHS: print(‘{!r:>21} : {!r}‘.format(path, os.path.abspath(path)))
os.path.getatime,os.path.getmtime,os.path.getctime,os.path.getsize提供对文件相关属性的访问
python学习笔记-os.path
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。