Записать каждый список в списке списков в отдельный txt файл
Есть список списков:
[[1,2,3],[4,5,6],[7,8,9]]
Как списать каждый элемент списка в отдельный txt файл, чтобы получить следующий результат:
[1,2,3] - text-1.txt
[4,5,6] - text-2.txt
[7,8,9] - text-3.txt
я пробовала следующий подход:
def text (res,k):
for element in res:
with open(f'text-{k}.txt','w') as f:
f.write(json.dumps(element))
return
Ответы (2 шт):
Автор решения: Alexandr
→ Ссылка
Пишем цикл и в нем запускаем функцию, которая записывает файлы
list = [[1,2,3],[4,5,6],[7,8,9]]
PATH = '../путь/к/папке/'
def write2TxtFile(text, file_name):
f = open( f'{PATH}{file_name}.txt' , 'w')
f.write(json.dumps(text))
f.close()
for idx, item in enumerate(list):
write2TxtFile(item, f'text-{idx}')
Автор решения: nomnoms12
→ Ссылка
Ваша ошибка в том, что аргумент k не меняется в цикле, и Вы перезаписываете один и тот же файл. Воспользуйтесь функцией enumerate, чтобы пронумеровать каждый элемент Вашей последовательности.
Пример:
import json
def text(res):
for k, element in enumerate(res, 1):
with open(f'text-{k}.txt', 'w') as f:
f.write(json.dumps(element))
res = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
text(res)