📅  最后修改于: 2023-12-03 15:34:11.499000             🧑  作者: Mango
在开发过程中,我们会经常遇到需要遍历整个文件夹及其子文件夹中的所有文件的情况。Python 提供了一种简单的方式来执行这个任务。在这篇文章中,我们将介绍如何使用 Python 来循环遍历所有文件夹和子文件夹。
为了开始,我们需要导入 os 模块。这个模块提供了一些有用的函数,比如 os.walk(),可以让我们遍历整个文件夹。
import os
现在,我们可以使用 os.walk() 函数来遍历文件夹中的所有子文件夹和文件。os.walk() 函数返回一个生成器对象。这个生成器遍历文件夹树中的每个目录,并返回一个 3 元组,包含当前目录的路径、当前目录下的所有子目录的名称列表以及当前目录下的所有文件的名称列表。例如:
for root, dirs, files in os.walk('.'):
print(f'当前目录路径:{root}')
print(f'当前目录下的子目录:{dirs}')
print(f'当前目录下的文件列表:{files}')
这个例子中,我们遍历了当前目录并打印了每个子目录和文件的列表。注意,使用 os.walk() 函数时,必须提供根目录的路径,即作为开始遍历的起点的目录。在这个例子中,我们将 '.' 作为根目录,代表当前目录。
现在我们已经知道如何遍历目录树中的目录、子目录和文件,我们可以使用这些信息来遍历所有文件。以下是一个示例:
for root, dirs, files in os.walk('.'):
for file in files:
file_path = os.path.join(root, file)
print(file_path)
在这个例子中,对于每个文件,我们将其路径构造出来,然后打印出来。
在实际应用中,我们通常只需要遍历特定类型的文件。使用 Python 的字符串方法可以轻松地实现这个功能。
例如,假设我们只需要处理 .txt 文件,我们可以使用以下代码:
for root, dirs, files in os.walk('.'):
for file in files:
if file.endswith('.txt'):
file_path = os.path.join(root, file)
print(file_path)
在这个例子中,我们使用文件名以 .txt 结尾来确定文件是否为我们想要的文件类型。
本文介绍了如何使用 Python 来循环遍历所有文件夹和子文件夹。我们学习了如何使用 os 模块的 os.walk() 函数来遍历目录树中的每个目录,并过滤出我们所需要的文件类型。在实际应用中,这些技术非常实用,帮助我们高效地管理和处理文件。
import os
#遍历所有文件
for root, dirs, files in os.walk('.'):
for file in files:
file_path = os.path.join(root, file)
print(file_path)
"""
输出:
./test.txt
./.ipynb_checkpoints/test-checkpoint.txt
./.ipynb_checkpoints/Untitled-checkpoint.ipynb
./Untitled.ipynb
./test/test3.txt
./test/test2.txt
./test/test.txt
"""
import os
#过滤文件
for root, dirs, files in os.walk('.'):
for file in files:
if file.endswith('.txt'):
file_path = os.path.join(root, file)
print(file_path)
"""
输出:
./test.txt
./.ipynb_checkpoints/test-checkpoint.txt
./test/test3.txt
./test/test2.txt
./test/test.txt
"""
参考资料: