遍历文件和文件夹:Python os.walk
在Python中,os模块提供了许多用于处理文件和目录的方法。其中,os.walk()方法是一个非常有用的方法,它可以帮助我们遍历文件夹中的所有文件和文件夹。
os.walk()方法简介
os.walk()方法是一个生成器,它在遍历给定目录树时生成三元组的值。每个三元组包含当前文件夹的路径、当前文件夹中所有子文件夹的名称和当前文件夹中所有文件的名称。
os.walk()方法的语法如下:
for root, dirs, files in os.walk(top, topdown=True):
# 对当前文件夹进行处理
for name in dirs:
# 处理当前文件夹中的子文件夹
for name in files:
# 处理当前文件夹中的文件
参数说明:
top
:要遍历的目录的路径topdown
:设置为True时,遍历文件夹的顺序是先子文件夹,后文件。设置为False时,遍历文件夹的顺序是先文件,后子文件夹。
os.walk()方法示例
接下来,我们通过一个示例来演示如何使用os.walk()方法来遍历文件夹中的所有文件和文件夹。假设我们有如下的文件夹结构:
parent_folder/
├── folder1/
│ ├── file1.txt
│ ├── file2.txt
│ └── subfolder1/
│ └── file3.txt
└── folder2/
└── file4.txt
我们的目标是输出所有文件和文件夹的路径。让我们来编写相应的代码:
import os
# 定义要遍历的目录路径
top_dir = 'parent_folder/'
# 遍历文件夹
for root, dirs, files in os.walk(top_dir):
print(f'当前文件夹路径:{root}')
if dirs:
print(f'子文件夹:{dirs}')
if files:
print(f'文件:{files}')
print()
运行以上代码,输出如下:
当前文件夹路径:parent_folder/
子文件夹:['folder1', 'folder2']
文件:[]
当前文件夹路径:parent_folder/folder1/
子文件夹:['subfolder1']
文件:['file1.txt', 'file2.txt']
当前文件夹路径:parent_folder/folder1/subfolder1/
子文件夹:[]
文件:['file3.txt']
当前文件夹路径:parent_folder/folder2/
子文件夹:[]
文件:['file4.txt']
从上面的输出中,我们可以看到os.walk()方法逐级遍历了目录树,并输出了每个文件夹中的子文件夹和文件。
总结
通过本文的详细介绍和示例,我们了解了如何使用Python中的os.walk()方法来遍历文件夹中的所有文件和文件夹。这个方法非常实用,可以帮助我们在处理文件和目录时节省大量的时间和工作量。