2012年10月18日星期四

python os.path常用函数介绍


便利某个目录下所有的文件,将所有便利到的文件保存到指定文件命中

import os,sys
#参数dir是欲便利的文件,file是保存结果的文件
#自定义函数
def listfileindir(dir,file):
    file.write(dir+'\n')
    filenum=0
    list=os.listdir(dir)
    for line in list:
        filepath=os.path.join(dir,line)
        if os.path.isdir(filepath):
           file.write('  '+line+'\\'+'\n')
           for li in os.listdir(filepath):
               file.write('  '+li+'\n')
               filenum=filenum+1
        else:
            file.write('  '+line+'\n')
            filenum=filenum+1
    file.write('all the file num is'+str(filenum) )
#注意raw_input的作用是提示用户输入,并返回用户输入结果
dir=raw_input('please input the path:')
myfile=open('list.txt','w')
#调用自定义函数
listfileindir(dir,myfile)
-----------该函数主要利用了os.path这个包,下面详解一下os.path这个包--------------

os.path主要讲解一下三个部分

[一]基本操作



  • basename('文件路径')
  •     去掉目录路径,返回fname文件名
1import os
2os.path.basename('/Volumes/1.mp4')   #输出('1.mp4')
  • dirname('文件路径')
  •     去掉文件名,返回目录路径
1import os
2os.path.dirname('/Volumes/1.mp4')   #输出('/Volumes')
  • splitdrive('文件路径')
  •     返回(drivername,fpath)元组
1import os
2os.path.splitdrive('Volumes/1.mp4')   #输出('','/Volumes/1.mp4')
  • os
  • .path.split('文件路径')    分割文件名与路径;返回(fpath,fname)元组;如果完全使用目录,它也会将最后一个目录作为文件名分离,且不会判断文件或者目录是否存在
1import os
2os.path.split('/Volumes/1.mp4')    #输出(‘/Volumes’,‘1.mp4’)
3os.path.split('/Volumes/text')     #输出(‘/Volumes’,‘text’)
  • os.path.splitext(“文件路径”)
  •     分离文件名与扩展名;默认返回(fname,fextension)元组,可做分片操作
1import os
2fname, fextension=os.path.splitext('/Volumes/Leopard/Users/Caroline/Desktop/1.mp4')
3print fname,fextension   #输出/Volumes/Leopard/Users/Caroline/Desktop/1 .mp4
4os.path.splitext('/Volumes/Leopard/Users/Caroline/Desktop/1.mp4')[1:]  #输出('.mp4',)
  • os.path.join('a','b','fname.extension')->'a/b/fname.extension'
  •     将分离的部分组成一个路径名
1imprort os
2os.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字符串形式  ???
01import os
02import time
03file='/Volumes/Leopard/Users/Caroline/Desktop/1.mp4'
04os.path.getatime(file)   #输出最近访问时间1318921018.0
05os.path.getctime(file)   #输出文件创建时间
06os.path.getmtime(file)   #输出最近修改时间
07time.gmtime(os.path.getmtime(file))   #以struct_time形式输出最近修改时间
08os.path.getsize(file)    #输出文件大小(字节为单位)
09os.path.abspath(file)    #输出绝对路径'/Volumes/Leopard/Users/Caroline/Desktop/1.mp4'
10os.path.normpath(file)   #输出'/Volumes/Leopard/Users/Caroline/Desktop/1.mp4'



没有评论:

发表评论