2016-05-13 2 views
1

Я пытаюсь создать скрипт, который будет проходить через список слов по одному и вставить его в 3 области сценария перед тем, как начать заново. Затем, когда он достигнет конца списка, остановится.Как пройти список файлов

wordlist = ['word1','word2','word3'] 

проходит через word1

csvinput = 'mainfile.csv' 

reader = csv.reader(open(r'{0}'.format(csvinput)), delimiter=',') 
filtered = filter(lambda p: 'word1' == p[6], reader) 
csv.writer(open(r"word1\word1.csv",'w', newline = ''),delimiter=',').writerows(filtered) 
time.sleep(0.1) 

затем начинается снова, но на word2 и т.д .., пока он не достигнет конца

ответ

4

ли вы имеете в виду, как это?

csvinput = 'mainfile.csv' 
reader = csv.reader(open(r'{0}'.format(csvinput)), delimiter=',') 

for word in wordlist: 
    filtered = filter(lambda p: word == p[6], reader) 
    csv.writer(open("{}\{}.csv".format(word, word),'w', newline = ''),delimiter=',').writerows(filtered) 
    time.sleep(0.1) 

Некоторые общие документы о пробегаем по значениям: https://docs.python.org/3.4/tutorial/classes.html#iterators https://docs.python.org/3.4/tutorial/datastructures.html#looping-techniques

+0

спасибо! Итераторы были тем, что я тоже искал. Только проблема заключается в том, что, как представляется, прекращается вставка данных после слова 'word1', но он создает файлы. Я думаю, что это может быть проблемой с 'filter' – iOSecure

+0

Есть ли у вас пример mainfile.csv? Может быть более простой способ достижения результата. – practual

+0

его работая сейчас! Мне пришлось переместить 'csvinput' и' reader' в ваш цикл – iOSecure

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