Как из списка вырезать все лишнее и каждый элемент записать с новой строки

код записывает его в файл с квадратными скобками и кавычками

# запись новых товаров в отдельный список
f = open('new_elem.txt','w', encoding='utf-8') # открывает файл для записи  
json.dump(difference, f, ensure_ascii=False)
f.close()

Он записывает список вот такой

["Белое", "Красное", "Синее" ]

Нужно что бы в файле был вот такой список

Белое, 
Красное,
Синее

Ответы (3 шт):

Автор решения: Webos

Половина задачи решена. Осталось найти как лишние символы вырезать - кавычки и квадратные скобки

f = open('new_elem.txt','w', encoding='utf-8') # открывает файл для записи
json.dump(difference, f, ensure_ascii=False,indent = 0) # indent = 0 запись в файл каждого элемента с новой строки. 0 - сколько пробелов отступить слева
f.close()
→ Ссылка
Автор решения: insolor
with open('new_elem.txt','w', encoding='utf-8') as f:
    print(',\n'.join(difference), file=f)
→ Ссылка
Автор решения: MarianD

Не надо использовать модуль json для простой записи элементов списка в файл:

with open('new_elem.txt','w', encoding='utf-8') as f:
    f.writelines([d + '\n' for d in difference])

Содержание файла new_elem.txt после хода этой программы:

Белое
Красное
Синее

Объяснение:

  1. Вместо open-close применено with open (контекст менеджер), также файл закроется автоматически.

  2. Генератор списка [d + '\n' for d in difference] (читайте с конца) добавит к всякому элементу d из оригинального списка difference символ перехода на новую строку ('\n'), создавая новый список.

  3. Этот новый список записывается в файл методом .writelines().

→ Ссылка