Python遍历目录

Python遍历目录

Python遍历目录

在编程过程中,经常会遇到需要遍历目录并处理其中的文件的需求。Python提供了一些方便的库和方法,使得遍历目录变得非常简单和高效。本文将介绍如何使用Python来遍历目录,并提供一些示例代码帮助读者更好地理解。

os 模块

Python的os模块提供了一些操作系统相关的功能,包括文件和目录操作。我们可以使用os.walk()方法来遍历目录下的所有文件和子目录,示例代码如下:

import os

for root, dirs, files in os.walk("test_dir"):
    for file in files:
        print(os.path.join(root, file))

运行结果将输出所有文件的绝对路径:

test_dir/file1.txt
test_dir/file2.txt
test_dir/sub_dir/file3.txt

在上面的示例代码中,os.walk()方法会递归遍历指定目录下的所有文件和子目录,并返回一个三元组(root, dirs, files),其中root为当前目录路径,dirs为当前路径下的子目录列表,files为当前路径下的文件列表。

pathlib 模块

Python3.4引入了pathlib模块,提供了更加面向对象的路径操作方法。我们可以使用Path.glob()方法来遍历目录下的所有文件和子目录,示例代码如下:

from pathlib import Path

p = Path("test_dir")
for f in p.glob("**/*"):
    print(f)

运行结果将输出同样的文件路径:

test_dir/file1.txt
test_dir/file2.txt
test_dir/sub_dir/file3.txt

pathlib模块提供了更加直观和易读的代码编写方式,让路径操作更加方便和简洁。

fnmatch 模块

fnmatch模块提供了Unix风格的文件名匹配功能,我们可以使用fnmatch.fnmatch()方法来遍历目录并匹配指定文件名,示例代码如下:

import fnmatch
import os

for root, dirs, files in os.walk("test_dir"):
    for file in files:
        if fnmatch.fnmatch(file, "*.txt"):
            print(os.path.join(root, file))

运行结果将只输出所有后缀为.txt的文件路径:

test_dir/file1.txt
test_dir/file2.txt
test_dir/sub_dir/file3.txt

fnmatch模块可以让我们更加灵活地筛选出符合条件的文件,使得文件遍历的过程更加可控。

总结

本文介绍了如何使用Python来遍历目录,并提供了os、pathlib和fnmatch模块的示例代码。读者可以根据自己的实际需求选择合适的方法来遍历目录,对提高工作效率和代码可维护性都有很大帮助。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程