Python文件遍历os.walk()与os.listdir()使用及说明
简介
在 Python 中,需要对目录中的文件或者子目录进行遍历来进行文件管理,常用的方法包括 os.walk() 和 os.listdir()。
-
os.listdir() 方法返回指定目录下的所有文件和目录名,不包括子目录内容。它返回的结果是一个列表,可以通过循环语句对其中的文件和目录进行遍历。
-
os.walk() 方法可以遍历一个目录下的所有子目录及文件,返回一个生成器,每次生成一个元组,包含所在文件夹的路径、该文件夹下的所有子目录和文件夹名称、该文件夹下所有文件的名称。我们可以使用 for 循环进行遍历。
os.listdir() 示例
import os
# 打开目录
dir_path = './test'
dir_contents = os.listdir(dir_path)
# 遍历输出
for filename in dir_contents:
print(filename)
注:'./' 表示当前文件所在目录。
在结果中我们看到,仅仅返回了文件和目录名,不包括下一级目录的文件和子目录。
os.walk() 示例
import os
# 初始目录
dir_path = './test'
# 遍历目录
for foldername, subfolders, filenames in os.walk(dir_path):
# 输出目录
print('当前目录为:'+foldername)
# 输出子目录
for subfolder in subfolders:
print('子目录有:' + subfolder)
# 输出文件名字
for filename in filenames:
print('文件有:'+filename)
在结果中我们看到,os.walk() 压缩了 os.listdir() 得到的结果,完整地表示了所在目录的路径,目录下的子目录以及文件,以便对每个文件或者目录进行更特定的操作。
总结
-
os.listdir() 方法只返回指定目录下的所有文件和目录名,适用于基本的文件管理场景。
-
os.walk() 方法可以遍历一个目录下的所有子目录及文件,返回更加完整的目录信息,适用于较为复杂的文件管理场景。
我们应该根据实际需求来选择需要使用的方法。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python文件遍历os.walk()与os.listdir()使用及说明 - Python技术站