1) Вы пишете не файл Excel, а файл CSV (который Excel знает, как импортировать).
2) Вы пишете в файл CSV, как если бы это был текстовый файл, без учета семантики CSV. CSV означает «значения, разделенные запятыми» . Если он содержит текст ['a','b','c']
, он будет интерпретирован как три столбца: ['a'
и 'b'
и 'c']
. Вам нужно будет процитировать значение, чтобы сделать это правильно; в CSV по умолчанию используется двойная кавычка. Поэтому, если вы напишите "['a','b','c']"
, это будет импортировано в Excel как одна ячейка. Тем не менее,
3) Вы пишете файл CSV вручную, что означает, что очень легко получить неправильный формат (например, забудьте об экранировании чего-то, что должно быть экранировано). В общем, всякий раз, когда вы пишете файл с установленным форматом, стоит проверить, есть ли у формата библиотека, которая знает, как с ним обращаться. Python изначально знает, как писать файлы CSV с помощью модуля csv
, и знает, как писать файлы Excel, используя пакеты, которые можно установить с помощью pip
, например xlwt
.
Вот как вы правильно пишете CSV-файл:
my_list = ['a', 'b', 'c']
import csv
with open('commentafterlink.csv', 'w') as w:
writer = csv.writer(w)
writer.writerow([str(my_list)])
Примечание: Переписывать встроенные переменные Python, такие как list
.
, плохо.
(я вижу, что другой ответчик уже предоставил вам решение для Excel, используя xlwt
.)