Записать каждый список в списке списков в отдельный 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)
→ Ссылка