0

我正在尝试检索具有特定扩展名的文件夹中的所有文件。但问题是我不知道那里可以有多少子目录..

所以基本上是这样的:

                   ------ 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}

任何建议谢谢

4

2 回答 2

2

你可以用os.walk. 对于每一级目录,它将为您提供目录路径、任何子目录名称的列表以及该目录中任何文件名的列表。从那里您可以组装字典以返回。

于 2012-12-08T05:49:49.940 回答
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
于 2012-12-08T05:57:36.853 回答