方法 | 详述 |
---|---|
listdir() | 列出指定path目录中的所有文件,包括子目录中的文件,访问文件顺序为字母顺序。该方法返回列表数据 |
walk( top,topdown = True,onerror = None,followlinks = False ) | 返回一个三元组,分别是 dirpath(遍历的目录路径)、dirnames(目录下的所有文件夹)、filenames(目录下的所有文件)。该方法传的四个参数中:top——指定要遍历的目录路径;topdown——为True时,优先遍历 top 目录下的所有文件,否则优先遍历 top 目录的子目录;onerror——当 walk 遍历文件发生异常时会调用;followlinks——默认即可 |
实例:
1、listdir 遍历目录文件:
# 导入OS模块
import os
# 待搜索的目录路径
path = "D:/test"
dirs = os.listdir(path)
# 输出所有文件以及文件夹(不包括子目录里的内容)
for file in dirs:
print(file)
2、walk 递归遍历目录文件:
# 导入OS模块
import os
# 待搜索的目录路径
path = "D:/test"
for root, dirs, files in os.walk(path):
# 遍历输出所有文件路径
for name in files:
print(os.path.join(root, name))
# 遍历输出目录路径
for name in dirs:
print(os.path.join(root, name))
测试:
查找目录下文件名中包含 2020 的所有文件,并打印输出对应的所有路径
# 导入OS模块
import os
# 待搜索的目录路径
path = "Day1-homework"
# 待搜索的名称
filename = "2020"
# 定义保存结果的数组
result = []
def findfiles():
# 在这里写下您的查找文件代码吧!
for root, dirs, files in os.walk(path):
# 遍历输出所有文件路径
for name in files:
# print(os.path.join(root, name))
if filename in name:
result.append(os.path.join(root, name))
for k in result:
print(result.index(k), ':', k)
# 遍历输出目录路径
# for name in dirs:
# print(os.path.join(root, name))
if __name__ == '__main__':
findfiles()
运行结果:
♥ 喜 欢 请 点 赞 哟 ♥ |
(●ˇ∀ˇ●) |