Chinaunix首页 | 论坛 | 博客
  • 博客访问: 831188
  • 博文数量: 97
  • 博客积分: 3042
  • 博客等级: 中校
  • 技术积分: 1610
  • 用 户 组: 普通用户
  • 注册时间: 2010-07-21 11:48
文章存档

2015年(1)

2014年(3)

2013年(4)

2012年(43)

2011年(44)

2010年(2)

分类: LINUX

2012-01-08 12:17:37

目录是文件存储的集合,对目录的操作包括目录的创建,删除,和目录的遍历等内容。
os模块提供了对目录进行操作的函数,如下:
【1】mkdir(path [, mode = 0777])      创建path指定的一个目录
【2】makedirs(name, mode = 511)    创建多级目录,name为“path1/path2/...”
【3】rmdir(path)                                  删除path指定的目录
【4】removedirs(paths)                        删除path指定的多级目录
【5】listdir(path)                                  返回path指定目录下的所有文件
【6】getcwd()                                      返回当前工作目录
【7】chdir(path)                                   将当前目录改变为path指定的目录
【8】walk(top, topdown=ture,onerror = none)   遍历目录树
示例:
import os
os.mkdir("hello")
os.rmdir("hello")
os.makedirs("hello/world")
os.removedirs("hello/world")

目录的遍历
目录的遍历有3种方法,(1)递归函数 (2)os.path.walk()  (3)os.walk()
【1】递归函数
import os
def VisitDir(path) :
      li = os.listdir(path)
      for p in li:
            pathname = os.path.join(path, p)
            if not os.path isfile(pathname) :
                  VisitDir(pathname)
            else:
                  print pathname

if __name__ == "__main__":
       path = r:"D\developer\python\example"
VisitDir(path)

【2】os.path.walk()
os.path.walk()的声明如下:
walk(top, func, arg)
(1)top表示要遍历的目录树的路径
(2)参数func表示回调函数,对遍历路径进行处理。所谓回调函数是指最为某个函数的参数使用,当某个事件触发时,程序将调用某个定义好的回调函数处理某个任务,回调函数必须提供三个参数:第一个是walk()的参数,第二个是目录列表,第三个是文件列表。
(3)参数arg是传递给回调函数func的元组。回调函数的第一个参数必须是arg,为回调函数提供处理参数,参数arg可以是空元组。

使用os.path.walk()遍历目录
import os, os.path
def VisitDir(arg, dirname, names):
       for filepath in names:
              print os.path.join(dirname, filepath)

if __name__ =="__main__" :
       path = r:"D:\developer\python\example"
       os.path.walk(path,VisitDir, ())

【3】os.walk()
os.walk()的执行效率最高,且不需要回调函数,容易使用。os.walk()的声明如下:
walk(top, topdown=ture, onerron= none)
(1)top表示需要遍历的目录树的路径。
(2)参数topdown的默认值为ture,表示先返回目录树下的文件,然后再遍历目录树的子目录,topdow为          false表示先遍历目录树下的子目录,然后返回根目录树的文件
(3)onerror为none表示忽略文件遍历时产生的错误。
(4)该函数返回一个元组,该元组有三个元素,分别是:每次遍历的路径名,目录列表和文件列表

示例:
import os
def VisitDir(path) :
       for root, dirs, files in os.walk(path):
               for filepath in files:
                      print os.path.join(root, filepath)

if __name__ == "__main__" :
       path = r"D:\developer\python\example"
       VIsitDir(path)
阅读(1030) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~