我正在尝试检索具有特定扩展名的文件夹中的所有文件。但问题是我不知道那里有多少个子目录..
所以基本上是这样的:
------ filex.py
---folder1 -------- filezs.py
root ------- folder2
--- file.py ----- fileabc.py
--- file.txt
等等
所以基本上我想编写一个执行以下操作的函数:
def get_files(root,files_of_type):
return dict{key = file_name: value = path}
因此,例如,如果我想获取所有文件及其扩展路径py
那么这就像:
root = "/path/to/root"
files_of_type = [".py"]
returns {"filex.py": "/path/to/root/folder1".. and so on}
任何建议 感谢
答案 0 :(得分:2)
您可以使用os.walk
执行此操作。对于每个级别的目录,它将为您提供目录路径,任何子目录名称的列表以及该目录中任何文件名的列表。从那里你可以组装字典来返回。
答案 1 :(得分:1)
import os
def get_files(root, files_of_type):
rv = {}
for cwd, folders, files in os.walk(root):
for fname in files:
# os.path.splitext splits a filename into a tuple like so:
# (file_path, extension)
if os.path.splitext(fname)[1] in files_of_type:
# key = filename, value = directory of file
rv[fname] = cwd
return rv