用Python遍历目录树

代码如下:

import os

path = 'C:\tmp\2020-07-14'

for folderName, subfolders, filenames in os.walk(path):
    print('The current folder is ' + folderName)
    for subfolder in subfolders:
        print('SUBFOLDER OF ' + folderName + ': ' + subfolder)
    for filename in filenames:
        print('FILE INSIDE ' + folderName + ': '+ filename)
print('')


os.walk()函数被传入一个字符串值,即一个文件夹的路径。你可以在一个for循环语句中使用os.walk()函数,遍历目录树,就像使用range()函数遍历一个范围的数字一样。不像range(),os.walk()在循环的每次迭代中,返回3个值:

1.当前文件夹名称的字符串。

2.当前文件夹中子文件夹的字符串的列表。

3.当前文件夹中文件的字符串的列表。


所谓当前文件夹,是指for循环当前迭代的文件夹。程序的当前工作目录,不会因为os.walk()而改变。

就像你可以在代码for i in range(10):中选择变量名称i一样,你也可以选择前面列出来的3个字的变量名称。我通常使用foldername、subfolders和filenames。


因为os.walk()返回字符串的列表,保存在subfolder和filename变量中,所以你可以在它们自己的for循环中使用这些列表。用你自己定制的代码,取代print()函数调用(或者如果不需要,就删除for循环)。


参考资料

===============

《Python编程快速上手-让繁琐工作自动化》9.2 遍历目录树

原文地址:https://www.cnblogs.com/awpatp/p/13305098.html