获取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