Как превратить список в столбец в CSV? - PullRequest
0 голосов
/ 24 ноября 2018

В настоящее время у меня есть заполненный список

list =[a, b, c, d]

Я хочу преобразовать содержимое списка в файл csvfile, и все элементы списка должны быть одним столбцом.Это текущий код, который у меня есть:

with open('twitter3.csv', 'w+') as csvfile:
    writer = csv.writer(csvfile, dialect='excel')
    writer.writerow(list)

Выходной CSV-файл содержит элементы списка, но, как следует из метода, он записал все содержимое в первой строке.

Я попытался сделать цикл for для записи каждого element + \n, но у метода writerow есть проблема с этим (ставит запятые после каждой буквы), и для csvwriter.

нет метода writecolumn.

Ответы [ 4 ]

0 голосов
/ 24 ноября 2018

Для выполнения этой задачи я бы использовал пакет pandas следующим образом:

import pandas as pd
l=["a","b","c","d"]
df=pd.DataFrame(l,index=False,header=False)
df.to_csv("twitter3.csv")

pandas также отлично подходит для чтения csv и даже для работы с файлами Excel.

0 голосов
/ 24 ноября 2018

Я поместил весь код в одно место, чтобы можно было скопировать и протестировать его.

import csv

# Should not use 'list' as variable
lst =['a', 'b', 'c', 'd']

# newline='' prevent additional new lines in file
with open('twitter3.csv', 'w+', newline='') as csvfile:
  writer = csv.writer(csvfile, dialect='excel')
  for l in lst:
    writer.writerow(l)
0 голосов
/ 24 ноября 2018

Это самый простой способ сделать это:

import csv

my_list = ['a', 'b', 'c', 'd']

with open('twitter3.csv', 'w', newline='') as csvfile:
    writer = csv.writer(csvfile, dialect='excel')
    writer.writerows(tuple(item) for item in my_list)

Примечание. Я изменил имя переменной списка на my_list, чтобы она не конфликтовала со встроеннойlist класс.

0 голосов
/ 24 ноября 2018

Вы можете сделать это, объединив элементы вашего списка в одну строку с символами новой строки '\n\r' в качестве разделителей, а затем запишите всю строку в ваш файл.

Например:

my_list = [a, b, c, d]

with open("twitter3.csv", "w+") as csvfile:
    to_write = "\n\r".join(my_list)
    csvfile.write(to_write)

(также '\n' работает)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...