用Python实现目录遍历及文件搜索

方法 详述
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()

运行结果:
在这里插入图片描述

♥ 喜 欢 请 点 赞 哟 ♥
(●ˇ∀ˇ●)

猜你喜欢

转载自blog.csdn.net/WU2629409421perfect/article/details/105693960
今日推荐