python-遍历多层文件夹的所有指定类型文件

1,173 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

随着互联网的快速发展,电脑已经成了大家日常生活中不可或缺的东西。现在每天我们的电脑中都会产生大量的文件,这也就使得如何快速查找自己的想要的文件问题变得越来越突出,对于移动端的设备,当今市场已经有各种各样成熟的文件管理器可以帮我们完成这个工作,而对于PC端来说,由于其自身系统的复杂性和底层机制,市面上的大多数文件整理类软件大多是“治标不治本”,并不能满足我们的真实需求。

不过作为软件创造者——程序猿的我们,遇到这种情况那就必须发挥一下自己的职业技能,自己动手,丰衣足食。话不多说,直接上干货!

需求:快速查找出指定目录中所有层级下某一指定类型文件

比如,JPG图片/mp4视频等

大体思路就很简单了。

  1. 循环迭代,逐级遍历;
  2. 判断对象类型是文件/文件夹,如果文件的话,进入下一步文件类型判断;如果是文件夹的话,返回上一步;
  3. 判断文件类型是否为目标文件类型,并记录下相应的文件信息;

代码(python):

import os
import os.path


def Get_JPG(path, all_file):  # 获取.JPG文件路径列表
    FileNames = os.listdir(path)  # 获取以天命名文件夹下所有文件列表
    for file_name in FileNames:
        cur_path = os.path.join(path, file_name)
        if os.path.isdir(cur_path):
            Get_JPG(cur_path, all_file)
        else:
            dir = os.path.dirname(cur_path)
            dir = dir.split('\')[-1]
            if file_name.endswith('.jpg'):
                all_file[dir] = file_name
    print(all_file)
    for k, v in all_file.items():
        f = open("%s.txt" % k, 'w')
        f.write(v)
        f.close()


if __name__ == "__main__":
    workspace = "CSDN120\新建文件夹"
    # 此处输入文件夹路径
    PhotosPaths = {}  # 图片路径列表
    Get_JPG(workspace, PhotosPaths)