Python 文件夹遍历

Python 文件夹遍历

Python 文件夹遍历

在编程过程中,经常会遇到需要遍历文件夹以及其中的文件的情况。Python 提供了多种方式来实现文件夹的遍历,本文将介绍如何使用 Python 来遍历文件夹,以及如何处理文件夹中的文件。

使用 os 模块来遍历文件夹

os 模块是 Python 的内置模块,提供了与操作系统交互的功能。我们可以使用 os 模块来实现文件夹的遍历。

import os

def traverse_folder(folder_path):
    for root, dirs, files in os.walk(folder_path):
        print(f"当前文件夹路径:{root}")
        print("包含的子文件夹:", dirs)
        print("包含的文件:", files)
        print("---")

folder_path = "C:/Users/Username/Documents"
traverse_folder(folder_path)

运行以上代码,将会输出指定文件夹路径下的所有子文件夹及文件。os.walk() 方法会返回一个三元组 (root, dirs, files),其中 root 是当前文件夹的路径,dirs 是当前文件夹下所有子文件夹的名称列表,files 是当前文件夹下所有文件的名称列表。

使用 glob 模块来遍历文件夹

glob 模块是 Python 的内置模块,用于匹配文件路径。我们可以结合 glob 模块来实现文件夹的遍历。

import glob

def traverse_folder(folder_path):
    files = glob.glob(folder_path + '/*')
    for file in files:
        if os.path.isdir(file):
            print(f"当前文件夹路径:{file}")
            print("包含的文件:", os.listdir(file))
            print("---")

folder_path = "C:/Users/Username/Documents"
traverse_folder(folder_path)

运行以上代码,同样可以输出指定文件夹路径下的所有子文件夹及文件。glob.glob() 方法可以返回一个包含指定路径下所有文件的列表,我们可以通过判断每个路径是文件夹还是文件来实现文件夹的遍历。

使用 pathlib 模块来遍历文件夹

pathlib 模块是 Python 3.4 引入的一个模块,用于处理文件系统路径。我们可以使用 pathlib 模块来实现文件夹的遍历。

from pathlib import Path

def traverse_folder(folder_path):
    for file in Path(folder_path).iterdir():
        if file.is_dir():
            print(f"当前文件夹路径:{file}")
            print("包含的文件:", [f.name for f in file.iterdir()])
            print("---")

folder_path = "C:/Users/Username/Documents"
traverse_folder(folder_path)

以上代码同样可以实现文件夹的遍历,但使用了 pathlib 的方式。Path(folder_path).iterdir() 可以返回一个包含指定路径下所有文件的迭代器,通过判断每个文件是文件夹还是文件,我们可以实现文件夹的遍历。

处理文件夹中的文件

在遍历文件夹的过程中,我们可能会需要对文件夹中的文件进行处理。以下是一个简单的示例,展示如何统计文件夹中所有文件的大小。

def calculate_folder_size(folder_path):
    total_size = 0
    for root, dirs, files in os.walk(folder_path):
        for file in files:
            file_path = os.path.join(root, file)
            total_size += os.path.getsize(file_path)
    return total_size

folder_path = "C:/Users/Username/Documents"
total_size = calculate_folder_size(folder_path)
print(f"文件夹 {folder_path} 总共占用空间:{total_size} bytes")

以上代码会递归地计算指定文件夹中所有文件的大小,并输出总共占用的空间大小。

总结

本文介绍了如何使用 Python 来遍历文件夹及处理文件夹中的文件,同时给出了使用 os、glob 和 pathlib 模块的示例代码。在实际开发中,根据需求可以选择合适的方法来实现文件夹的遍历和文件处理。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程