write work with read open how files and python csv line-endings writer

work - ¿Python csv writer siempre utiliza caracteres de fin de línea de DOS?



write csv files in python (2)

Me doy cuenta de que la biblioteca csv en Python siempre genera caracteres de fin de línea de DOS. Incluso si uso el modo ''wb'' , incluso si uso Linux.

import csv f = open(''output.txt'', ''wb''); writer = csv.writer(f) writer.writerow([2,3,4]); f.close()

El código anterior siempre usa ''/r/n'' como el separador de final de línea. ¿Cómo puedo hacer que use solo ''/n'' ?


Como respondió Niklas , el argumento del determinador de línea le permite elegir los finales de línea. En lugar de codificarlo en /n , os.linesep independiente de la plataforma utilizando el separador de línea de su plataforma: os.linesep .

import csv import os f = open(''output.csv'', ''wb'') writer = csv.writer(f, lineterminator=os.linesep) writer.writerow([2,3,4]) f.close()

Para otros que encuentren este post, no ''wb'' perdáis el ''wb'' . No notará ningún problema si lo pierde en algunas plataformas como GNU / Linux, pero es importante abrir el archivo en modo binario en plataformas donde eso importa, como Windows. De lo contrario, el archivo csv puede terminar con finales de línea como /r/r/n . Si usa ''wb'' y os.linesep , sus finales de línea deben ser correctos en todas las plataformas.