2012-12-08 137 views
0

我想要檢索具有特定擴展名的文件夾中的所有文件。但問題是,我不知道子目錄多少可以在那裏..獲取目錄中所有文件的路徑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} 

任何建議 感謝

+0

您有兩個問題:1)如何獲得文件遞歸列表,以及2)如何根據擴展名篩選出文件。如果你搜索,你可以找到這兩件事。 –

回答

2

你可以做到這一點與。對於目錄的每個級別,它將爲您提供目錄路徑,任何子目錄名稱的列表以及該目錄中的任何文件名的列表。從那裏你可以組裝字典返回。

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 
相關問題