返回

Python 遍历文件技巧揭秘:事半功倍!

后端

Python 作为一门强大的编程语言,在文件处理方面有着广泛的应用。其中,文件遍历是文件处理中一个必不可少的操作。Python 提供了多种文件遍历方法,包括 os.walk、os.listdir 和 next 等。这些方法各有其特点和适用场景,掌握这些方法可以帮助我们高效地处理文件。

os.walk:深度遍历文件夹和文件

os.walk 是 Python 中用于遍历文件夹和文件的最常用方法。它采用深度遍历的方式,从给定的根目录开始,递归地遍历其所有子目录和文件,并返回一个元组,其中包含当前目录的根目录、子目录列表和文件列表。

import os

# 根目录
root_dir = "C:/Users/username/Desktop/project"

# 遍历根目录及其子目录
for root, dirs, files in os.walk(root_dir):
    # 当前目录
    print(f"Current Directory: {root}")

    # 子目录
    print("Subdirectories:")
    for directory in dirs:
        print(f"- {directory}")

    # 文件
    print("Files:")
    for file in files:
        print(f"- {file}")

os.listdir:列出目录下的文件和文件夹

os.listdir 是另一个用于遍历目录的方法。它列出给定目录中的所有文件和文件夹,并返回一个包含这些文件和文件夹名称的列表。

import os

# 目录
directory = "C:/Users/username/Desktop/project/data"

# 列出目录下的文件和文件夹
files_and_folders = os.listdir(directory)

# 打印文件和文件夹
print("Files and Folders:")
for item in files_and_folders:
    print(f"- {item}")

next:迭代器遍历文件

next 方法可以用于迭代遍历文件。它从文件对象中读取一行,并返回该行内容。

# 打开文件
file = open("C:/Users/username/Desktop/project/data/file.txt", "r")

# 逐行读取文件
while True:
    # 读取一行
    line = next(file, None)

    # 如果读取到末尾,则退出循环
    if line is None:
        break

    # 打印行内容
    print(line)

# 关闭文件
file.close()

递归遍历文件和文件夹

递归遍历是一种深度优先搜索算法,它从给定的根目录开始,递归地遍历其所有子目录和文件。这种方法可以用来搜索文件系统中的文件或文件夹,或对文件系统进行操作。

def recursive_traversal(directory):
    # 列出目录下的文件和文件夹
    files_and_folders = os.listdir(directory)

    # 遍历文件和文件夹
    for item in files_and_folders:
        # 如果是文件,则打印文件名
        if os.path.isfile(os.path.join(directory, item)):
            print(f"- {item}")
        # 如果是目录,则递归遍历该目录
        elif os.path.isdir(os.path.join(directory, item)):
            recursive_traversal(os.path.join(directory, item))

# 根目录
root_dir = "C:/Users/username/Desktop/project"

# 递归遍历根目录及其子目录
recursive_traversal(root_dir)

通过掌握这些文件遍历方法,我们可以轻松地处理文件系统中的文件和文件夹。这些方法可以帮助我们完成各种任务,例如搜索文件、复制文件、移动文件、删除文件等。掌握这些方法可以使我们更加高效地处理文件,从而提高工作效率。