遍历文件系统目录树的深入理解
遍历文件系统目录树是我们在开发的过程中经常会用到的操作之一,可以用来查找文件、文件夹,或者对一个文件夹下面的所有文件进行批量处理。本文将介绍如何使用 Python 的 os
模块来遍历文件系统目录树。
使用 os.walk() 方法
Python 提供了 os.walk()
方法,它可以用来遍历目录树。这个方法的返回值是一个迭代器,每次遍历到一个目录时,它会返回一个由 3 个元素组成的元组:
- 当前遍历到的目录的路径
- 当前遍历到的目录下的子目录列表
- 当前遍历到的目录下的文件列表
我们可以使用 os.walk()
来遍历目录树,并遍历其下所有文件和子目录,如下所示:
import os
def walk_dir(root_dir):
for root, dirs, files in os.walk(root_dir):
for filename in files:
print("File:", os.path.join(root, filename))
for dirname in dirs:
print("Directory:", os.path.join(root, dirname))
上述代码中,我们定义了一个 walk_dir()
函数,它接收一个参数 root_dir
,代表待遍历的目录的路径。函数中使用 os.walk()
将目录树遍历一遍,并将遍历到的文件和子目录分别输出。
示例一:查找所有的 .py 文件
对于一个 Python 开发者来说,有时候需要遍历一个目录并查找所有的 .py 文件,可以使用如下代码:
import os
def find_py_files(root_dir):
result = []
for root, dirs, files in os.walk(root_dir):
for filename in files:
if filename.endswith(".py"):
result.append(os.path.join(root, filename))
return result
上述代码中,我们定义了一个 find_py_files()
函数,它接收一个参数 root_dir
,代表待遍历的目录的路径。函数中使用 os.walk()
遍历目录树,并将遍历到的文件名与 ".py" 后缀进行比较,如果匹配,则将该文件的路径添加到结果列表中并返回。
示例二:统计目录下所有文件的大小
有时候,我们需要遍历一个目录并统计其下所有文件的大小。可以使用如下代码:
import os
def get_dir_size(root_dir):
size = 0
for root, dirs, files in os.walk(root_dir):
size += sum([os.path.getsize(os.path.join(root, filename)) for filename in files])
return size
上述代码中,我们定义了一个 get_dir_size()
函数,它接收一个参数 root_dir
,代表待遍历的目录的路径。函数中使用 os.walk()
遍历目录树,并计算遍历到的所有文件的大小之和。
总结
os.walk() 是 Python 中一种遍历目录树的通用方法,可以遍历所有的文件和文件夹。通过 os.path 模块可以获取文件的大小、创建时间、修改时间等信息。在实际开发过程中,可以根据具体需求,灵活运用这些方法,进行目录树的深入遍历,从而更好地完成批量处理操作。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:遍历文件系统目录树的深入理解 - Python技术站