最近评论
文章分类
    收藏
      相册
      存档
      软件项目交易
      订阅我的博客
      XML聚合  FeedSky
      订阅到鲜果
      订阅到Google
      订阅到抓虾
      订阅到BlogLines
      订阅到Yahoo
      订阅到GouGou
      订阅到飞鸽
      订阅到Rojo
      订阅到newsgator
      订阅到netvibes

      原创 python中关于文件路径的简单操作收藏

      新一篇: python正则表达式学习 | 旧一篇: 不要一辈子都是coder

         python中关于文件路径的简单操作

      几个主要的函数:


      1: os.listdir(path)  //path为目录

         功能相当于在path目录下执行dir命令,返回为list类型
         举例:
         print os.listdir('..')
         输出:
       [a,b,c,d]

      2: os.path.walk(path,visit,arg)

         path  :是将要遍历的目录
         visit :是一个函数指针,函数圆形为:
          callback(arg,dir,fileList)
                 其中arg为为传给walk的arg , dir是path下的一个目录,fileList为dir下的文件和目录组成的list
         arg:传给visit用的,对walk没有什么作用

         举例:
         def callback(arg,directory, files):
          print directory,
          print files,
          print arg
          print '--------------------'
         
         os.path.walk('.',callback, '123456')

         输出:
         . ['path0704.py', 'temp', '\xc2\xb7\xbe\xb6\xcf\xe0\xb9\xd8\xd1\xa7\xcf\xb0.txt'] 123456
         --------------------
         .\temp ['temp.h', 'temp1'] 123456
         --------------------
         .\temp\temp1 ['abc.bmp'] 123456

         如果想找到某个目录下所有文件,只需要在callback里面,在fileList中找出文件,即可

         除此之外,还有一个函数可以用那就是os.walk,看10

      3:os.path.split(path)
         path 为一个路径,
        
         输出,把path分成两部分,具体看实例:
         print os.path.split("abc/de.txt")
         ('abc', 'de.txt')
         os.path.split("abc")
         ('', 'abc')
         print os.path.split("de/abc/de")
         ('de/abc', 'de')
        

      4: os.path.splitext(filename)
         把文件名分成文件名称和扩展名
         os.path.splitext(abc/abcd.txt)
         ('abc/abcd', '.txt')

      5:  os.path.dirname(path)
          把目录名提出来
          print os.path.dirname("abc")
                #输出为空
          print os.path.dirname('abc\def')  
          abc

      6: os.path.basename(filename)
          取得主文件名
          print os.path.basename('abc')
          abc
          print os.path.basename('abc.txt')
          abc
          print os.path.basename('bcd/abc')
          abc    #这个需要注意不包括目录名称
          print os.path.basename('.')
          .


      7:os.mkdir(path, [mode])
         path为目录名: 这里有个要求,只能创建一级目录
         比如path为 abc/def  则当前目录下必须存在abc 否则失败
        
      8: os.makedirs(path [,mode])
         可以创建多级目录

      9:os.remove(path)删除一个文件,一定是一个文件
         os.removedirs(path) 删除一个目录下所有东西
         os.rmdir(path) 删除一个目录,而且一定要空,否则os.errer

      10:os.walk(path)
          遍历path,返回一个对象,他的每个部分都是一个三元组
          ('目录x',[目录x下的目录list],目录x下面的文件)

          举例:
          a =    os.walk('.')
          for i in a:
       print i
          输出:
          ('.', ['abc', 'temp'], ['path0704.py', '\xc2\xb7\xbe\xb6\xcf\xe0\xb9\xd8\xd1\xa7\xcf\xb0.txt'])
          ('.\\abc', [], ['\xd0\xc2\xbd\xa8 BMP \xcd\xbc\xcf\xf1.bmp'])
          ('.\\temp', ['temp1'], ['temp.h'])
          ('.\\temp\\temp1', [], ['abc.bmp'])


      11:shutil.copy(src,dst)
          把文件src内容拷贝到文件dst中。,目标区域必须可以写,如果dst存在,则dst被覆盖

      上面的函数基本够用
      其它文件移动操作还请看:shutil模块:High-level file operations

       


       

      发表于 @ 2006年07月07日 15:14:00|评论(loading...)|编辑

      新一篇: python正则表达式学习 | 旧一篇: 不要一辈子都是coder

      评论:没有评论。

      发表评论  


      当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
      Csdn Blog version 3.1a
      Copyright © wingSys