2017-08-24 91 views
1

如何通過os.listdir將python僅輸出目錄,同時指定通過raw_input列出哪個目錄?使用os.listdir僅顯示目錄

我有什麼:

file_to_search = raw_input("which file to search?\n>") 

dirlist=[] 

for filename in os.listdir(file_to_search): 
    if os.path.isdir(filename) == True: 
     dirlist.append(filename) 

print dirlist 

現在,這確實可以工作,如果我輸入(通過raw_input)當前的工作目錄。但是,如果我放入其他東西,該列表將返回空白。我試圖分解和克服這個問題,但是每個代碼塊都按照預期工作。

+0

你能分享一下你在'的raw_input進入'領域和你使用什麼操作系統? – MSeifert

+0

自Jean-Francois解決方案工作以來的記錄: 我輸入的示例:C:/,D:/ X/Y,C:\,D:\ X \ Y,D:\\ X \\ Y 操作系統:Windows – Felix

回答

2

那的預期,因爲os.listdir只返回名稱的文件/顯示目錄的,所以對象都沒有找到,除非你在當前目錄運行它。

你必須join將掃描目錄來計算的完整路徑,它的工作:

for filename in os.listdir(file_to_search): 
    if os.path.isdir(os.path.join(file_to_search,filename)): 
     dirlist.append(filename) 

筆記列表理解版本:

dirlist = [filename for filename in os.listdir(file_to_search) if os.path.isdir(os.path.join(file_to_search,filename))] 
+0

感謝您的快速答案,完美的作品 – Felix