获取python目录中文件的所有路径
我正在尝试检索具有特定扩展名的文件夹中的所有文件。但问题是,我不知道有多少子目录可以在那里 基本上是这样的:获取python目录中文件的所有路径,python,Python,我正在尝试检索具有特定扩展名的文件夹中的所有文件。但问题是,我不知道有多少子目录可以在那里 基本上是这样的: ------ filex.py ---folder1 -------- filezs.py root ------- folder2 --- file.py ----- fileabc.py --- file.txt 等等 基本上
------ 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}
有什么建议吗
谢谢你可以用它来做。对于每一级目录,它将为您提供目录路径、任何子目录名的列表以及该目录中任何文件名的列表。从那里,您可以组装字典返回。您可以使用。对于每一级目录,它将为您提供目录路径、任何子目录名的列表以及该目录中任何文件名的列表。从那里您可以组装字典返回。您有两个问题:1)如何递归获取文件列表,以及2)如何根据扩展名筛选出文件。你有两个问题:1)如何递归地获取文件列表,2)如何根据扩展名筛选出文件。如果你搜索,你可以找到这两样东西。
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