Python 遍历文件

Python 遍历文件

Python 遍历文件

在编程中,经常需要对文件进行处理,比如读取文件内容、写入文件内容、查找特定文件等操作。Python提供了多种方法来遍历文件夹和文件,使得文件处理更加便捷和高效。本文将详细介绍如何使用Python来遍历文件夹和文件的操作。

遍历文件夹

os模块

Pythonos 模块提供了操作文件和目录的功能,可以使用 os.listdir() 方法来获得指定目录下的所有文件和目录列表。下面是一个简单的示例代码,演示如何遍历文件夹。

import os

def list_dir(path):
    for file in os.listdir(path):
        file_path = os.path.join(path, file)
        if os.path.isdir(file_path):
            print(f"Directory: {file_path}")
            list_dir(file_path)
        else:
            print(f"File: {file_path}")

path = "/path/to/directory"
list_dir(path)

运行结果如下所示:

Directory: /path/to/directory/subdir1
File: /path/to/directory/file1.txt
File: /path/to/directory/file2.txt
File: /path/to/directory/subdir1/file3.txt
File: /path/to/directory/subdir1/file4.txt
Directory: /path/to/directory/subdir1/subdir2
File: /path/to/directory/subdir1/subdir2/file5.txt

在上面的示例中,定义了一个 list_dir() 函数来遍历指定目录下的所有文件和子目录,如果遇到子目录,则递归调用自身进行深度遍历。

pathlib模块

除了 os 模块外,Python 还提供了 pathlib 模块来进行路径操作和文件处理。pathlib 模块提供了更加面向对象和简洁的 API,可以大大简化文件和目录的操作。下面是使用 pathlib 模块遍历文件夹的示例代码:

from pathlib import Path

def list_dir(path):
    p = Path(path)
    for item in p.iterdir():
        if item.is_dir():
            print(f"Directory: {item}")
            list_dir(item)
        else:
            print(f"File: {item}")

path = "/path/to/directory"
list_dir(path)

运行结果与使用 os 模块的示例相同。

遍历文件

对于文件的遍历,一般使用 os.listdir()pathlib 模块提供的方法来获取目录下的文件列表,然后逐个处理文件内容。下面是一个示例代码,演示如何读取文件内容并输出到控制台。

import os

def read_file(file_path):
    with open(file_path, "r") as f:
        content = f.read()
        print(content)

path = "/path/to/directory"
for file in os.listdir(path):
    file_path = os.path.join(path, file)
    if os.path.isfile(file_path):
        print(f"Reading file: {file_path}")
        read_file(file_path)

在上面的示例中,定义了一个 read_file() 函数来读取文件内容,并通过遍历文件夹下的文件列表,逐个调用该函数读取文件内容。

查找特定文件

有时候需要在目录下查找特定的文件,可以使用递归方式遍历目录,通过判断文件名是否符合条件来筛选文件。下面是一个示例代码,演示如何查找指定后缀名的文件。

import os

def find_files(path, extension):
    for file in os.listdir(path):
        file_path = os.path.join(path, file)
        if os.path.isdir(file_path):
            find_files(file_path, extension)
        else:
            if file.endswith(extension):
                print(f"Found file: {file_path}")

path = "/path/to/directory"
extension = ".txt"
find_files(path, extension)

上面的示例代码将遍历指定目录下的所有文件,如果文件名以 .txt 结尾,则输出该文件的路径。

总结

本文介绍了如何使用Python遍历文件夹和文件的操作,通过 os 模块和 pathlib 模块提供的方法,可以方便地进行文件和目录的处理。在实际开发中,文件处理是一个常见的需求,掌握文件遍历的技巧和方法,能够提高编程效率。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程