转载:https://automatetheboringstuff.com/
转载:https://automatetheboringstuff.com/2e/chapter10/
import os for folderName, subfolders, filenames in os.walk('C:\\delicious'): 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('')
The current folder is C:\delicious 第一层
SUBFOLDER OF C:\delicious: cats
SUBFOLDER OF C:\delicious: walnut
FILE INSIDE C:\delicious: spam.txt
The current folder is C:\delicious\cats 第二层
FILE INSIDE C:\delicious\cats: catnames.txt
FILE INSIDE C:\delicious\cats: zophie.jpg
The current folder is C:\delicious\walnut 第二层
SUBFOLDER OF C:\delicious\walnut: waffles
The current folder is C:\delicious\walnut\waffles 第三层
FILE INSIDE C:\delicious\walnut\waffles: butter.txt.
os.walk()函数传递一个字符串值:一个文件夹的路径。您可以在for循环语句中使用os.walk()遍历目录树,就像您可以使用range()函数遍历一系列数字一样。与range()不同,os.walk()函数在每次循环迭代时将返回三个值:
- 当前文件夹名称的字符串
- 当前文件夹中文件夹的字符串列表
- 当前文件夹中文件的字符串列表
(在当前文件夹中,我的意思是for循环的当前迭代的文件夹。os.walk()不会更改程序的当前工作目录。)
就像您可以在代码中为range(10):中的i选择变量名i一样,您也可以为前面列出的三个值选择变量名。我通常使用名称foldername,子文件夹和文件名。