Для каждого элемента списка запишите его в отдельный файл, python

#python #list #file-io

#python #Список #file-io

Вопрос:

У меня есть список длиной n. Каждый элемент списка должен быть записан в n .txt файлов. По какой-то причине следующий базовый подход у меня не работает:

 for item in lst:
     for i in range(len(lst)):
         write_to_me = open('list_item_%i.txt' %i, 'w') 
         write_to_me.write(item)
  

Имена файлов в порядке (‘list_item_0.txt ‘, ‘list_item_1.txt’ и т.д.) Но в каждый файл записывается один и тот же элемент. В итоге у меня получается n файлов с повторяющимся содержимым в каждом файле. Есть идеи?

Ответ №1:

Не используйте вложенные циклы. Используйте enumerate для получения как индекса, так и элемента:

  for i, item in enumerate(lst):
     write_to_me = open('list_item_{0}.txt'.format(i), 'w') 
     write_to_me.write(item)
     write_to_me.close()
  

Примечание: Не забудьте закрыть файлы, когда закончите их использовать!