介绍
在Python开发中,处理文件和文件夹是不可避免的任务。而经常需要遍历文件夹及其子文件夹,并对其中的文件进行一些处理。Python提供了os模块来处理文件和文件夹的操作,其中os.walk()函数是遍历文件夹及其子文件夹的常用方法。
正文
os.walk()函数用法
os.walk()函数用于遍历一个目录内的所有子目录和文件,返回当前目录路径、当前路径下所有子目录名称和当前路径下所有文件名称。
函数语法:
os.walk(top, topdown=True, onerror=None, followlinks=False)
参数说明:
- top:需要遍历的目录路径
- topdown:可选,默认为 True,表示当前目录遍历顺序是自上而下的,如果为 False,表示自下而上遍历
- onerror:可选,默认为 None,表示遍历目录时发生错误如何处理
- followlinks:可选,默认为 False,表示是否跟随符号链接
返回值:
遍历时,对于每个目录,os.walk() 会返回一个三元组,分别包含如下内容:
- 当前目录的相对路径
- 当前目录下的子目录列表
- 当前目录下的文件列表
使用os.walk()遍历文件夹及其子文件夹
以下是 os.walk() 方法遍历文件夹及其子文件夹的示例代码:
import os
# 要遍历的目录
path = "your_path"
# 遍历目录及其子目录,返回一个三元组 (dirpath, dirnames, filenames)
for dirpath, dirnames, filenames in os.walk(path):
# 输出目录路径(相对于输入路径)
print("dirpath", dirpath)
# 输出所有子目录(相对于输入路径)
for dirname in dirnames:
print("dirname", dirname)
# 输出所有文件路径(相对于输入路径)
for filename in filenames:
print("filename", os.path.join(dirpath, filename))
说明:
- 使用 os.walk() 方法遍历给定路径的目录及其子目录,返回一个三元组 (dirpath, dirnames, filenames)
- dirpath 是一个字符串,代表当前目录的路径
- dirnames 是一个列表,包含当前目录下所有的子目录名称
- filenames 是一个列表,包含当前目录下所有的文件名称
- os.path.join(dirpath, filename) 方法用于连接目录和文件名,以得到文件的完整路径
使用os.walk()实现文件夹和文件的操作
使用 os.walk() 方法,可以对文件夹及其子文件夹中的文件进行一些操作,例如删除文件、修改文件名等。以下代码演示了如何使用 os.walk() 方法实现删除指定后缀名的所有文件。
import os
# 要遍历的目录
path = "your_path"
# 删除指定后缀名的所有文件
for dirpath, dirnames, filenames in os.walk(path):
for filename in filenames:
if filename.endswith(".txt"):
os.remove(os.path.join(dirpath, filename))
说明:
- 遍历指定路径的所有文件夹和文件,如果文件名以 ".txt" 结尾,则删除文件(使用 os.remove() 函数实现)。
- os.path.join(dirpath, filename)方法用于连接目录和文件名,以得到文件的完整路径。
小结
使用 os.walk() 方法可以很方便地实现遍历文件夹及其子文件夹的功能,同时也可以在遍历的过程中对文件夹中的文件进行一些操作。学习 os.walk() 方法可以为 Python 文件和文件夹的处理操作提供更多的便利,避免冗长的目录递归过程。