python如何遍历文件夹

Python 如何遍历文件夹:终极指南

python如何遍历文件夹

遍历文件夹是许多 Python 程序中的一个基本操作,它使您可以访问目录结构中的文件和子文件夹。本指南将深入探讨 Python 中遍历文件夹的各种技术,并提供详细的示例。

os 模块

Python 标准库中的 os 模块提供了用于文件夹遍历的几个函数。

os.walk(path)

os.walk() 是用于递归遍历文件夹的强大函数。它返回一个生成器,其中包含当前目录、子目录和文件的元组。

用法:

“`python
import os

for root, dirs, files in os.walk(“my_directory”):
for file in files:
print(os.path.join(root, file))
“`

os.listdir(path)

os.listdir() 返回当前目录中文件的列表。它不递归遍历子文件夹。

用法:

“`python
import os

files = os.listdir(“my_directory”)
for file in files:
print(file)
“`

pathlib 模块

Python 3.4 中引入了 pathlib 模块,它提供了面向对象的访问文件系统的方法。

Path.glob(pattern)

Path.glob() 方法使用 glob 模式匹配当前目录中与给定模式匹配的文件。

用法:

“`python
from pathlib import Path

path = Path(“my_directory”)
for file in path.glob(“*.txt”):
print(file)
“`

Path.iterdir()

Path.iterdir() 方法返回当前目录中的所有文件和子目录。

用法:

“`python
from pathlib import Path

path = Path(“my_directory”)
for item in path.iterdir():
print(item)
“`

其他方法

除了 ospathlib 模块之外,还有其他方法可以遍历文件夹。

shutil.rmtree(path)

shutil.rmtree() 可以递归删除整个文件夹及其内容。

用法:

“`python
import shutil

shutil.rmtree(“my_directory”)
“`

性能注意事项

在选择遍历文件夹的方法时,考虑性能至关重要。os.walk() 通常比 os.listdir() 慢,因为它是递归的。pathlib 模块提供了比 os 模块更快的性能。

常见问题解答

1. 如何过滤遍历文件夹的结果?

您可以使用文件系统函数或 glob 模式来过滤要遍历的文件。

2. 如何获取文件的信息,例如大小和修改时间?

os.stat()pathlib.Path.stat() 函数可以提供有关文件的信息。

3. 如何递归创建文件夹?

os.makedirs() 函数可以递归创建文件夹。

4. 如何处理遍历过程中发生的错误?

您可以使用 try...except 块来处理遍历过程中的错误。

5. 如何遍历符号链接?

您可以使用 os.path.islink() 来检查文件是否为符号链接,并使用 os.readlink() 来获取符号链接的目标。

原创文章,作者:杨文宁,如若转载,请注明出处:https://www.wanglitou.cn/article_65485.html

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 2024-06-09 13:49
下一篇 2024-06-09 13:52

相关推荐

公众号