web-dev-qa-db-fra.com

Ecrivez newline dans csv en Python

Je veux terminer chaque interaction d'une boucle for avec l'écriture d'une nouvelle ligne de contenu (y compris la nouvelle ligne) dans un fichier csv. J'ai ceci:

# Set up an output csv file with column headers
with open('outfile.csv','w') as f:
    f.write("title; post")
    f.write("\n")

Cela ne semble pas écrire un fichier\n (nouvelle ligne) réel. Plus loin:

    # Concatenate into a row to write to the output csv file
    csv_line = topic_title + ";" + thread_post
    with open('outfile.csv','w') as outfile:
                 outfile.write(csv_line + "\n")

Cela ne déplace pas non plus le curseur du fichier externe vers la ligne suivante. Chaque nouvelle ligne, à chaque itération de la boucle, remplace simplement la plus récente.

J'ai également essayé outfile.write(os.linesep) mais n'ai pas fonctionné.

6
DIGSUM

changer "w" en "a"

with open('outfile.csv','a')
6
fuwiak
with open('outfile.csv', 'w', newline='') as f:
    f.writerow(...)

Alternativement:

f = csv.writer('outfile.csv', lineterminator='\n')
3
Chankey Pathak

Je fais face au même problème, il suffit de suivre:

  f = csv.writer('outfile.csv', lineterminator='\n')
1
Lee Ran