📜  python循环从目录打开文件 - Python(1)

📅  最后修改于: 2023-12-03 14:46:44.432000             🧑  作者: Mango

Python循环从目录打开文件

在Python中,循环从目录打开文件是一项常见的任务。这种任务通常涉及到遍历目录,并打开目录中的每个文件进行进一步处理。下面介绍一些实现此任务的方法。

os模块和os.walk()

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:
            # 进行文件处理

代码解释:

  • os.walk("path/to/directory")遍历"path/to/directory"目录。
  • for root, dirs, files in os.walk("path/to/directory")遍历目录中的每个文件和子目录。
  • os.path.join(root, filename)创建完整的文件路径,方便打开文件。
glob模块

另一个常用的方法是使用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模块提供了一个高级的接口,可用于在目录结构中遍历目录,并打开目录中的每个文件进行处理。

以下是使用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中引入的新模块。每种方法都有其独特的优点和用途。使用这些方法将使遍历目录和处理文件变得更加容易,同时也提高了代码的可读性和可维护性。