2013-02-05 88 views
0

所以我試圖使用glob.glob來通過用戶提供的Python路徑,然後找到.txt的所有後續文件夾。目前,下面是我的,但似乎沒有工作。使用glob.glob通過給定路徑在多個文件夾中查找文件?

fileName = raw_input("> ") 
listOfTxt = [] 
for files in glob.glob(os.path.join(fileName, "\\Folder\\*\\*\\*.txt")): 
    listOfTxt.append(files) # add it to the list 

我不知道如何得到這個工作,或者我只是不理解與os.path glob.glob。

+1

你想獲得的所有'.txt'文件下'的user_dir/Folder' ,還是你想'user_dir/Folder'下面的所有'.txt'文件兩個目錄? – mgilson

+0

考慮原始字符串文字 - 它們比所有那些加倍的反斜槓更容易閱讀('r「\ Folder \ * \ * \ *。txt」')。 – PaulMcG

回答

1

如果你只是想在os.path.join(user_dir,'Folder')所有.txt文件列表,然後os.walk可能是一個更好的方式去:

import os 
user_dir = os.path.join(raw_input('> '),'Folder') 
file_list = [ ] 
for dirpath,_,filenames in os.path.walk(user_dir): 
    for name in filenames: 
     if name.endswith('.txt'): 
      file_list.append(os.path.join(user_dir,dirpath,name)) 
+0

啊,這對我有效!謝謝。我不確定我正在嘗試做什麼,我以前有過某種特定的方式,但是當python文件與所有其他文件不在同一位置時,必須對其進行更改。所以這對我有用!謝謝! – jamby

+0

沒問題。我很高興能有用 – mgilson

0

你加入一個路徑給定的名字,這很奇怪,可能不是你想要的。 你可能想要類似

glob.glob(os.path.join("\\Folder\\*\\*\\",fileName+".txt")) 

+0

我不完全理解OP想要完成什麼,但是這並沒有達到爲「.txt」文件搜索「用戶給定路徑」的既定目標。 – zigg