本篇文章为大家展示了Python中怎么调用遍历目录树的函数,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
Python遍历目录树下面的函数调用
os.path.walk(root, myfunc, arg)
将遍历root目录树;然后,对每个目录名dirname分别调用myfunc(arg, dirname, files)即可,这里参数files是dir中的文件名列表(可通过调用os.listdir(dirname)来获得);arg是用户从调用代码中传递来的参数。对于UNIX操作系统用户来说,Python语言中跨平台的os.path.walk相当于Unix命令find。
在解释os.path.walk的用法的时候,人们常使用写出主目录中所有子目录内的文件的名称为例进行说明。当然,我们也可以在一个交互式的Python命令行中使用下列代码段来体会os.path.walk的使用:
def ls(arg, dirname, files): print dirname, ’has the files’, files os.path.walk(os.environ[’HOME’], ls, None)
本例中关于Python遍历目录树,参数arg并非必需,所以在os.path.walk调用中让其取值为None即可。为了列出主目录中所有大于1Mb的文件,可以使用下面的代码:
def checksize1(arg, dirname, files): for file in files: filepath = os.path.join(dirname, file) if os.path.isfile(filepath): size = os.path.getsize(filepath) if size > 1000000: sizesize_in_Mb = size/1000000.0 arg.append((size_in_Mb, filename)) bigfiles = [] root = os.environ[’HOME’] os.path.walk(root, checksize1, bigfiles) for size, name in bigfiles: print name, ’大小为’, size, ’Mb’
现在,我们使用arg来建立一个数据结构,这里是一个2元组构成的列表,其中每个2元组存放文件的尺寸(以MB为单位)和完整的文件路径。如果用于所有目录的函数调用中都要更改arg的话,那么arg必须是一个可变的数据结构,即允许适当地进行修改。
上述内容就是Python中怎么调用遍历目录树的函数,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注编程网行业资讯频道。