Запись списка строк в файл CSV Excel в Python
Я пытаюсь создать CSV файл, который содержит содержимое списка строк в Python, используя скрипт ниже. Однако, когда я проверяю свой выходной файл, оказывается, что каждый символ отделяется запятой. Как я могу дать команду csv.writer
разделять каждую отдельную строку в списке, а не каждый символ?
import csv
RESULTS = ['apple','cherry','orange','pineapple','strawberry']
result_file = open("output.csv",'wb')
wr = csv.writer(result_file, dialect='excel')
for item in RESULTS:
wr.writerow(item)
Я проверил PEP 305 и не смог найти ничего конкретного.
Ответы
Ответ 1
Метод csv.writer
writerow
принимает в качестве аргумента итерацию. Ваш набор результатов должен быть списком (строками) списков (столбцов).
csvwriter.writerow(row)
Записать параметр строки в объект файла Writers, отформатированный в соответствии с текущим диалектом.
Сделайте либо:
import csv
RESULTS = [
['apple','cherry','orange','pineapple','strawberry']
]
with open('output.csv','wb') as result_file:
wr = csv.writer(result_file, dialect='excel')
wr.writerows(RESULTS)
или:
import csv
RESULT = ['apple','cherry','orange','pineapple','strawberry']
with open('output.csv','wb') as result_file:
wr = csv.writer(result_file, dialect='excel')
wr.writerow(RESULT)
Ответ 2
Очень просто исправить, вам просто нужно включить параметр для записи в список.
for item in RESULTS:
wr.writerow([item,])
Ответ 3
Я знаю, что немного опоздал, но что-то, что я нашел, что работает (и не требует использования csv
), - это написать цикл for, который записывает в ваш файл для каждого элемента в вашем списке.
# Define Data
RESULTS = ['apple','cherry','orange','pineapple','strawberry']
# Open File
resultFyle = open("output.csv",'w')
# Write data to file
for r in RESULTS:
resultFyle.write(r + "\n")
resultFyle.close()
Я не знаю, было ли это решение лучше, чем те, которые уже были предложены, но он более точно отражает вашу оригинальную логику, поэтому я думал, что буду делиться.
Ответ 4
Пример - написать несколько строк с логическим столбцом (используя приведенный выше пример GaretJax и Eran?).
import csv
RESULT = [['IsBerry','FruitName'],
[False,'apple'],
[True, 'cherry'],
[False,'orange'],
[False,'pineapple'],
[True, 'strawberry']]
with open("../datasets/dashdb.csv", 'wb') as resultFile:
wr = csv.writer(resultFile, dialect='excel')
wr.writerows(RESULT)
Результат:
df_data_4 = pd.read_csv('../datasets/dashdb.csv')
df_data_4.head()
Выход:
IsBerry FruitName
0 False apple
1 True cherry
2 False orange
3 False pineapple
4 True strawberry