Python遍历文件夹中的文件——深入指南114


在处理文件和目录时,遍历文件夹和访问其文件对于许多Python项目至关重要。本文将深入探讨使用Python遍历文件夹中文件的各种方法,从基本到高级场景。

基本遍历(os 模块)

Python提供了os模块,它提供了许多可用于文件和目录操作的函数。使用os模块进行基本遍历的一种方法是使用()函数:
import os
for root, directories, files in ("my_directory"):
for file in files:
print((root, file))

这将递归地遍历指定的目录及其子目录,并打印每个文件路径。

高级遍历(Pathlib 模块)

Python 3.4引入了Pathlib模块,它提供了一个更直观且面向对象的界面来处理文件路径。使用Pathlib遍历文件夹的一种方法是使用iterdir()方法:
from pathlib import Path
path = Path("my_directory")
for file in ():
print(file)

Pathlib模块还提供了类似于()函数的rglob()方法,它递归地遍历目录结构并返回匹配文件路径的生成器:
from pathlib import Path
path = Path("my_directory")
for file in ("*.txt"):
print(file)

忽略隐藏文件和目录

在遍历文件夹时,通常需要忽略隐藏文件和目录。可以使用startswith('.')的条件语句来过滤掉这些文件:
import os
for root, directories, files in ("my_directory"):
for file in files:
if not ('.'):
print((root, file))

处理不同文件类型

可以使用文件扩展名来进一步过滤和处理不同类型的文件。例如,要仅打印具有.txt扩展名的文件:
import os
for root, directories, files in ("my_directory"):
for file in files:
if (".txt"):
print((root, file))

同时获取文件信息

除了文件路径外,还可以在遍历过程中获取其他文件信息,例如文件大小、修改时间和访问权限。
import os
for root, directories, files in ("my_directory"):
for file in files:
filepath = (root, file)
filesize = (filepath)
filetime = (filepath)
fileperms = (filepath)
print(f"{file}: {filesize} bytes, {(filetime)}, {fileperms:o}")

使用生成器

对于大型文件系统,遍历文件夹时使用生成器可以高效地使用内存。生成器返回一个迭代器对象,它将文件路径逐个生成,而不是一次性加载全部路径。
import os
def gen_files(directory):
for root, directories, files in (directory):
for file in files:
yield (root, file)
for file in gen_files("my_directory"):
print(file)


Python提供了多种方法来遍历文件夹中的文件,从基本场景到处理不同文件类型和获取文件信息的复杂用例。了解这些方法将使您能够有效地处理文件和目录,并编写健壮且可扩展的Python脚本。

2024-10-23


上一篇:遍历 Python 中目录下的文件

下一篇:Sublime Text 中的 Python 自动补全