O gravador de CSV do Python 2 produz terminador de linha errado no Windows
De acordo comsua documentação O csv.writer deve usar '\ r \ n' como lineterminator por padrão.
import csv
with open("test.csv", "w") as f:
writer = csv.writer(f)
rows = [(0,1,2,3,4),
(-0,-1,-2,-3,-4),
("a","b","c","d","e"),
("A","B","C","D","E")]
print writer.dialect.lineterminator.replace("\r", "\\r").replace("\n", "\\n")
writer.writerows(rows)
print writer.dialect.lineterminator.replace("\r", "\\r").replace("\n", "\\n")
Isso imprime
\r\n
\r\n
como esperado. Mas, o arquivo csv criado usa o determinador de linha '\ r \ r \ n'
0,1,2,3,4
0,-1,-2,-3,-4
a,b,c,d,e
A,B,C,D,E
Isso é um bug ou há algo de errado no meu uso de csv.writer?
Versão em Python:
ActivePython 2.6.2.2 (ActiveState Software Inc.) baseado em Python 2.6.2 (r262: 71600, 21 de abril de 2009, 15:05:37) [MSC v.1500 de 32 bits (Intel)] em win32
no Windows Vista