获取指定路径下特定后缀的文件(包含子文件夹)
当我们文件夹一层套一层,当我们想找的文件在一级一级的目录内,当我们想找到文件夹中不同层次相同的后缀文件时,这个小技巧超级管用。如果你恰好遇到这种问题,那就继续看下去吧!
主要用到Python内置模块:os
特别使用 : os.walk
对于os.walk的解释是:用于在目录树中游走输出在目录中的文件名,向上或向下。
最初我看这个解释的时候我不懂,知道自己举了个例子,我就明白了:
假设我的目录情况如下如所示,我想获得所有的“*.txt”文件的路径:
若我们使用如下代码块
for root, dirs, files in os.walk("H:\\")
print(root, dirs, files)
此时,我们便可以看到,得到的是一个元组,用for遍历元组中的元素:root, dics, files,这里的三个元素对应下图三列:
因此,我们可以写入下得代码来获取后缀为“*.txt”的文件:
import os
def getListFiles(path):
ret = []
for root, dirs, files in os.walk(path):
for filespath in files:
ret.append(os.path.join(root, filespath))
return ret
ret = getListFiles("H:\\")
listSpicalpath = set()
for i in ret:
if os.path.splitext(i)[1] == ".txt":
listSpicalpath.add(i)
print(listSpicalpath)