📅  最后修改于: 2023-12-03 14:46:44.432000             🧑  作者: Mango
在Python中,循环从目录打开文件是一项常见的任务。这种任务通常涉及到遍历目录,并打开目录中的每个文件进行进一步处理。下面介绍一些实现此任务的方法。
Python的os模块提供了一个方便的函数,用于在目录结构中遍历目录。这个函数叫做os.walk()。它返回3个值:当前目录的路径、当前目录下的子目录列表、当前目录下的文件列表。
以下是使用os.walk()的代码片段:
import os
for root, dirs, files in os.walk("path/to/directory"):
for filename in files:
# 打开文件并进行处理
with open(os.path.join(root, filename)) as f:
# 进行文件处理
代码解释:
另一个常用的方法是使用glob模块。这个模块可用于从目录中获取指定的文件类型,也可以在子目录中递归地查找文件。
以下是使用glob.glob()的代码片段:
import glob
# 查找当前目录中的所有txt文件
for filename in glob.glob("*.txt"):
# 打开文件并进行处理
with open(filename) as f:
# 进行文件处理
以下是使用glob.glob()递归查找文件的代码片段:
import glob
# 递归查找所有.txt文件
for filename in glob.glob("**/*.txt", recursive=True):
# 打开文件并进行处理
with open(filename) as f:
# 进行文件处理
pathlib模块提供了一个高级的接口,可用于在目录结构中遍历目录,并打开目录中的每个文件进行处理。
以下是使用pathlib.Path.glob()的代码片段:
import pathlib
# 遍历目录中的所有.txt文件
for path in pathlib.Path("path/to/directory").glob("*.txt"):
# 打开文件并进行处理
with open(path) as f:
# 进行文件处理
以下是使用pathlib.Path.rglob()递归查找文件的代码片段:
import pathlib
# 递归查找所有.txt文件
for path in pathlib.Path("path/to/directory").rglob("*.txt"):
# 打开文件并进行处理
with open(path) as f:
# 进行文件处理
本文介绍了使用Python进行循环从目录打开文件的几种方法。其中,os模块和glob模块是Python标准库的一部分,而pathlib模块是在Python 3.4中引入的新模块。每种方法都有其独特的优点和用途。使用这些方法将使遍历目录和处理文件变得更加容易,同时也提高了代码的可读性和可维护性。