获取目录python中的所有文件路径

时间:2012-12-08 05:41:51

标签: python

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

所以基本上是这样的:

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

任何建议 感谢

2 个答案:

答案 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