os.path模块
- basename('文件路径') 去掉目录路径,返回fname文件名
1 | import os |
2 | os.path.basename( '/Volumes/1.mp4' ) #输出('1.mp4') |
- dirname('文件路径') 去掉文件名,返回目录路径
1 | import os |
2 | os.path.dirname( '/Volumes/1.mp4' ) #输出('/Volumes') |
- splitdrive('文件路径') 返回(drivername,fpath)元组
1 | import os |
2 | os.path.splitdrive( 'Volumes/1.mp4' ) #输出('','/Volumes/1.mp4') |
- os.path.split('文件路径') 分割文件名与路径;返回(fpath,fname)元组;如果完全使用目录,它也会将最后一个目录作为文件名分离,且不会判断文件或者目录是否存在
1 | import os |
2 | os.path.split( '/Volumes/1.mp4' ) #输出(‘/Volumes’,‘1.mp4’) |
3 | os.path.split( '/Volumes/text' ) #输出(‘/Volumes’,‘text’) |
- os.path.splitext(“文件路径”) 分离文件名与扩展名;默认返回(fname,fextension)元组,可做分片操作
1 | import os |
2 | fname, fextension = os.path.splitext( '/Volumes/Leopard/Users/Caroline/Desktop/1.mp4' ) |
3 | print fname,fextension #输出/Volumes/Leopard/Users/Caroline/Desktop/1 .mp4 |
4 | os.path.splitext( '/Volumes/Leopard/Users/Caroline/Desktop/1.mp4' )[ 1 :] #输出('.mp4',) |
- os.path.join('a','b','fname.extension')->'a/b/fname.extension' 将分离的部分组成一个路径名
1 | imprort os |
2 | os.path.join( 'a' , 'b' , '1.mp4' ) #输出#‘a/b/1.mp4’ |
查询:返回值True,False
- exists() 指定路径(文件或者目录)是否存在
- isabs() 指定路径是否为绝对路径
- isdir() 指定路径是否存在且为一个目录
- isfile() 指定路径是否存在且为一个文件
- islink() 指定路径是否存在且为一个符号链接
- ismount() 指定路径是否存在且为一个挂载点 ???
- samefile() 两个路径名是否指向同一个文件
文件信息
- getatime() 返回最近访问时间 (浮点型秒数)
- getctime() 返回文件创建时间
- getmtime() 返回最近文件修改时间
- getsize() 返回文件大小 (字节为单位)
- abspath() 返回绝对路径
- normpath() 规范path字符串形式 ???
01 | import os |
02 | import time |
03 | file = '/Volumes/Leopard/Users/Caroline/Desktop/1.mp4' |
04 | os.path.getatime( file ) #输出最近访问时间1318921018.0 |
05 | os.path.getctime( file ) #输出文件创建时间 |
06 | os.path.getmtime( file ) #输出最近修改时间 |
07 | time.gmtime(os.path.getmtime( file )) #以struct_time形式输出最近修改时间 |
08 | os.path.getsize( file ) #输出文件大小(字节为单位) |
09 | os.path.abspath( file ) #输出绝对路径'/Volumes/Leopard/Users/Caroline/Desktop/1.mp4' |
10 | os.path.normpath( file ) #输出'/Volumes/Leopard/Users/Caroline/Desktop/1.mp4' |
os.path.abspath(path)
返回path规范化的绝对路径。
>>> os.path.abspath('test.csv')
'C:\\Python25\\test.csv'
>>> os.path.abspath('c:\\test.csv')
'c:\\test.csv'
>>> os.path.abspath('../csv\\test.csv')
'C:\\csv\\test.csv'
os.path.split(path)
将path分割成目录和文件名二元组返回。
>>> os.path.split('c:\\csv\\test.csv')
('c:\\csv', 'test.csv')
>>> os.path.split('c:\\csv\\')
('c:\\csv', '')
os.path.dirname(path)
返回path的目录。其实就是os.path.split(path)的第一个元素。
>>> os.path.dirname('c:\\csv\test.csv')
'c:\\'
>>> os.path.dirname('c:\\csv')
'c:\\'
os.path.basename(path)
返回path最后的文件名。如何path以/或\结尾,那么就会返回空值。即os.path.split(path)的第二个元素。
>>> os.path.basename('c:\\test.csv')
'test.csv'
>>> os.path.basename('c:\\csv')
'csv' (这里csv被当作文件名处理了)
>>> os.path.basename('c:\\csv\\')
''
os.path.commonprefix(list)
返回list中,所有path共有的最长的路径。
如:
>>> os.path.commonprefix(['/home/td','/home/td/ff','/home/td/fff'])
'/home/td'
os.path.exists(path)
如果path存在,返回True;如果path不存在,返回False。
>>> os.path.exists('c:\\')
True
>>> os.path.exists('c:\\csv\\test.csv')
False
os.path.isabs(path)
如果path是绝对路径,返回True。
os.path.isfile(path)
如果path是一个存在的文件,返回True。否则返回False。
>>> os.path.isfile('c:\\boot.ini')
True
>>> os.path.isfile('c:\\csv\\test.csv')
False
>>> os.path.isfile('c:\\csv\\')
False
os.path.isdir(path)
如果path是一个存在的目录,则返回True。否则返回False。
>>> os.path.isdir('c:\\')
True
>>> os.path.isdir('c:\\csv\\')
False
>>> os.path.isdir('c:\\windows\\test.csv')
False
os.path.join(path1[, path2[, ...]])
将多个路径组合后返回,第一个绝对路径之前的参数将被忽略。
>>> os.path.join('c:\\', 'csv', 'test.csv')
'c:\\csv\\test.csv'
>>> os.path.join('windows\temp', 'c:\\', 'csv', 'test.csv')
'c:\\csv\\test.csv'
>>> os.path.join('/home/aa','/home/aa/bb','/home/aa/bb/c')
'/home/aa/bb/c'
os.path.normcase(path)
在Linux和Mac平台上,该函数会原样返回path,在windows平台上会将路径中所有字符转换为小写,并将所有斜杠转换为饭斜杠。
>>> os.path.normcase('c:/windows\\system32\\')
'c:\\windows\\system32\\'
os.path.normpath(path)
规范化路径。
>>> os.path.normpath('c://windows\\System32\\../Temp/')
'c:\\windows\\Temp'
os.path.splitdrive(path)
>>> os.path.splitdrive('c:\\windows')
('c:', '\\windows')
os.path.splitext(path)
>>> os.path.splitext('c:\\csv\\test.csv')
('c:\\csv\\test', '.csv')
os.path.getsize(path)
返回path的文件的大小(字节)。
>>> os.path.getsize('c:\\boot.ini')
299L