我正在尝试检索具有特定扩展名的文件夹中的所有文件。但问题是我不知道里面可以有多少子目录..
所以基本上是这样的:
------ 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}有什么建议,谢谢
发布于 2012-12-08 13:49:50
你可以用os.walk做到这一点。对于每一级目录,它将为您提供目录路径、所有子目录名称的列表以及该目录中的任何文件名的列表。在那里,您可以组装字典以返回。
发布于 2012-12-08 13:57:37
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 rvhttps://stackoverflow.com/questions/13774872
复制相似问题