web-dev-qa-db-fra.com

Écrire une liste Python dans une seule colonne CSV

J'ai une liste de nombres que je veux mettre dans une seule colonne dans un fichier .csv. Le code ci-dessous écrit les valeurs sur une seule ligne. Comment puis-je changer le code pour que Python écrit chaque valeur sur une ligne séparée? Merci.

        with open('returns.csv', 'wb') as f:
            writer = csv.writer(f)
            writer.writerow(daily_returns)
22
user1028861

Avec Python3, ouvrez le fichier en mode w:

with open('returns.csv', 'w') as f:
    writer = csv.writer(f)
    for val in daily_returns:
        writer.writerow([val])

Avec Python2.6 +, ouvrez le fichier en mode wb:

with open('returns.csv', 'wb') as f:
    writer = csv.writer(f)
    for val in daily_returns:
        writer.writerow([val])
23
unutbu

Solution alternative: En supposant que daily_returns est le nom de la liste que vous souhaitez écrire en tant que colonne dans un fichier CSV, le code suivant devrait fonctionner:

with open('return.csv','w') as f:
    writer = csv.writer(f);
    writer.writerows(Zip(daily_returns));
8
Alankar Jain

Juste pour info:

J'utilise Python 3.2 et je ne pouvais que faire fonctionner les éléments suivants

with open('returns','w')as f:
    writer=csv.writer(f,lineterminator='\n')
    for val in returns:
        writer.writerow([val])
2
Oregano

Pour écrire une seule colonne, je recommanderais d'éviter les commandes csv et d'utiliser simplement plain python avec la méthode str.join () :

    with open('returns.csv', 'wb') as f:
        f.write("\n".join(daily_returns))
2
spinup