web-dev-qa-db-fra.com

Comment enregistrer une liste en tant que fichier .csv avec python avec de nouvelles lignes?

Je voudrais enregistrer une liste python dans un .csv fichier, par exemple j'ai une liste comme celle-ci:

['hello','how','are','you']

Je voudrais l'enregistrer comme ceci:

colummn,
hello,
how,
are,
you,

J'ai essayé ce qui suit:

myfile = open('/Users/user/Projects/list.csv', 'wb')
wr = csv.writer(myfile, quoting=csv.QUOTE_ALL,'\n')
wr.writerow(pos_score)
17
skwoi

utilisez pandas to_csv ( http://pandas.pydata.org/pandas-docs/dev/generated/pandas.DataFrame.to_csv.html )

>>> import pandas as pd
>>> df = pd.DataFrame(some_list, columns=["colummn"])
>>> df.to_csv('list.csv', index=False)
37
grechut

Si vous voulez que tous les mots sur des lignes différentes, vous devez définir le délimiteur sur \n:

l = ['hello','how','are','you']
import  csv

with open("out.csv","w") as f:
    wr = csv.writer(f,delimiter="\n")
    wr.writerow(l)

Sortie:

hello
how
are
you

Si vous voulez une virgule de fin:

with open("out.csv","w") as f:
    wr = csv.writer(f,delimiter="\n")
    for ele in l:
        wr.writerow([ele+","])

Sortie:

hello,
how,
are,
you,

Je recommanderais simplement d'écrire les éléments sans la virgule de fin, il n'y a aucun avantage à avoir une virgule de fin, mais cela pourrait bien vous causer des problèmes plus tard.

10
Padraic Cunningham

Vous pouvez simplement passer cela en tant que valeur d'un dict avec la clé "colonne" à un constructeur DataFrame, puis appeler to_csv sur le df:

In [43]:

df = pd.DataFrame({'column':['hello','how','are','you']})
df
Out[43]:
  column
0  hello
1    how
2    are
3    you
In [44]:

df.to_csv()
Out[44]:
',column\n0,hello\n1,how\n2,are\n3,you\n'
2
EdChum