目录遍历的三种方法

来源:互联网 发布:淘宝公告栏素材 编辑:程序博客网 时间:2024/06/06 04:42
1、目录的遍历:递归函数
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)             visitDir('C:\\Users\\Administrator\\Desktop\\python_lianxi\\learning\\study')

2、目录的遍历:os.path.walk()

声明:
walk(top,func,arg)

参数top表示需要遍历的目录树的路径

参数func表示回调函数,对遍历路径进行处理。所谓回调函数,是作为某个函数的参数使用,当某个时间触发时,程序调用定义好的回调函数处理某个任务,回调函数必须提供三个参数,
第一个参数位walk()的参数arg,第二个参数为目录列表,第三个参数表示文件列表

参数arg是传递给回调函数的 的元祖,可以是空元组

import os.pathdef visitDir_one(arg,dirnames,names):    for filename in names:        print(os.path.join(dirnames,filename))        os.path.walk('C:\\Users\\Administrator\\Desktop\\python_lianxi\\learning\\study',visitDir_one,())


    

3、目录的遍历:os.walk()
os模块也提供来了walk()用于目录的遍历,类似与os.path.walk()。但效果更高
而且不需要回调函数,更易使用
声明:
walk(top,topdown=True,onerror=None)

参数top标书需要遍历的目录树的路径

参数topdown默认值是True,表示首先返回目录树下的文件,然后在遍历目录树下的子目录,参数topdown值是False,则表示先遍历目录树下的子目录,返回子目录下的文件,然后返回根目录下的文件

参数onerror的默认值是None,表示忽略文件遍历时产生的错误,如果不为空,需要提供一个自定义的函数表示错误信息后继续遍历或者抛出异常后终止遍历

该函数返回一个元组,该元组有3个元素,这3个元素分别是每次遍历的路径名,目录列表。和文件列表

for dirname,pathname,filenames in os.walk('C:\\Users\\Administrator\\Desktop\\python_lianxi\\learning\\study'):    print(dirname)    print(pathname)    for filename in filenames:        print(os.path.join(dirname,filename))



       
原创粉丝点击