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)
“`
其他方法
除了 os
和 pathlib
模块之外,还有其他方法可以遍历文件夹。
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