2016-10-11 48 views
0

新手使用列表值,我有以下代碼:的Python:循環使用列表,在蟒蛇目錄

XX = [A,B,C,D,E] 
src_path = 'C:\love\hi_XX\you' 

for file in src_path: 
    Do something.... 

我想遍歷所有文件C:\love\hi_A\you第一,然後C:\love\hi_B\you一路C:\love\hi_E\you

我正在使用Spyder。我如何完成這項工作?謝謝。

+0

你在找什麼?讀取或寫入文件? – user3754008

+0

尋找一種方式幫助使用循環遍歷所有文件夾,而無需重複循環5次 – Braveheart

+0

太棒了。謝謝AJNeufeld – Braveheart

回答

2

您可以創建要在XX使用針對元素循環

for X in XX: 
    src_path = r'C:\love\hi_' +X + r'\you' 

然後,循環內的src_path,你可以在對方的回答使用os.walk

import os 
for root, dirs, files in os.walk(".", topdown=False): 
    for name in files: 
     print(os.path.join(root, name)) 
    for name in dirs: 
     print(os.path.join(root, name)) 
+0

有錯誤說過A,B C ... undefind name。那麼我錯誤不能分配給literalut A ='A',B ='B' – Braveheart

+0

你想說你不能輸入命令 A ='A'? –

+0

從AJNewfeld得到解決方案 – Braveheart

0

你需要你的陣列擺放在你的文字引號。而os.path.join是一個總是路徑組件結合在一起是一個好主意:

import os.path 
XX = ["A", "B", "C", "D", "E"] 
for X in XX: 
    src_path = os.path.join(r'C:\love', "hi_"+X, "you") 
    print(src_path) 

C:\愛\ hi_A \你
C:\愛\ hi_B \你
C:\愛\ hi_C \你
C:\愛\ hi_D \你
C:\愛\ hi_E \你

最後,如果C:\love\hi_XX\you是目錄,你需要在他們之下的文件,然後使用os.walk在您的src_path值。

+0

謝謝你的幫助 – Braveheart