目录是文件存储的集合,对目录的操作包括目录的创建,删除,和目录的遍历等内容。
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) |