Python 遍历文件夹

Python 遍历文件夹

Python 遍历文件夹

在日常编程中,经常会遇到需要遍历文件夹中的所有文件的情况。Python提供了多种方法来实现这一目的。本文将介绍如何使用Python遍历文件夹,并对常用的几种方法进行详细讲解。

方法一:os 模块

os 模块是 Python 标准库中的一个模块,提供了和操作系统相关的功能。我们可以使用 os 模块中的 listdir() 函数来获取指定文件夹中的所有文件和子文件夹列表,并进行递归遍历。

下面是一个简单的示例代码:

import os

def list_files(directory):
    for filename in os.listdir(directory):
        filepath = os.path.join(directory, filename)
        if os.path.isdir(filepath):
            list_files(filepath)
        else:
            print(filepath)

# 遍历当前文件夹
list_files('.')
Python

运行结果:

./file1.txt
./file2.txt
./subfolder/file3.txt
Python

在上面的示例中,我们定义了一个 list_files() 函数,通过递归调用来遍历指定文件夹中的所有文件。遇到子文件夹时,递归调用自身进行遍历。

方法二:os.walk()

os 模块还提供了一个更便捷的函数 os.walk(),它可以直接返回所有的文件夹、子文件夹和文件。我们只需要遍历返回的结果即可完成遍历文件夹的操作。

下面是一个示例代码:

import os

def list_files(directory):
    for root, dirs, files in os.walk(directory):
        for file in files:
            print(os.path.join(root, file))

# 遍历当前文件夹
list_files('.')
Python

运行结果:

./file1.txt
./file2.txt
./subfolder/file3.txt
Python

在上面的示例中,我们使用 os.walk() 函数直接获取了所有文件夹、子文件夹和文件,然后遍历文件列表输出文件路径。

方法三:glob 模块

如果我们只需要匹配指定模式的文件,可以使用 glob 模块。glob 模块提供了类似于 Unix shell 中的通配符功能,可以方便地筛选出需要的文件。

下面是一个示例代码:

import glob

def list_files(directory, pattern='*'):
    for file in glob.glob(directory + '/' + pattern):
        print(file)

# 遍历当前文件夹下所有 txt 文件
list_files('.', '*.txt')
Python

运行结果:

./file1.txt
./file2.txt
./subfolder/file3.txt
Python

在上面的示例中,我们使用 glob 模块筛选出所有的 txt 文件进行遍历输出。

方法四:Path 类

Python 3.4 引入了 pathlib 模块,提供了一种更加面向对象的方式来操作文件和文件夹。我们可以使用 Path 类来遍历文件夹中的所有文件。

下面是一个示例代码:

from pathlib import Path

def list_files(directory):
    for file in Path(directory).rglob('*'):
        print(file)

# 遍历当前文件夹
list_files('.')
Python

运行结果:

file1.txt
file2.txt
subfolder/file3.txt
Python

在上面的示例中,我们使用 Path 类的 rglob() 方法来递归遍历文件夹中的所有文件。

总结

本文介绍了四种常用的方法来遍历文件夹中的所有文件:os 模块、os.walk()、glob 模块和 Path 类。根据不同的需求和习惯,选择合适的方法来完成文件夹遍历操作。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册