2016-10-11 2 views
0

новичка в Python, у меня есть следующий код:Python: Loop со списком, значение списка использования в каталоге

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

Awesome. Спасибо AJNeufeld – Braveheart

ответ

2

Вы можете создать src_path, что вы хотите, используя цикл с элементами в XX

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

Затем, в течение этого цикла, вы можете использовать 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

Got error said A, B C ... undefind name. Тогда ошибка pgot не может назначить 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

Смежные вопросы