üzerinde yanlış satır sonlandırıcısı üretir its documentation csv.writer 'varsayılan olarak lineterminator olarak' \ r \ n 'kullanmalıdır. beklendiği gibiPython 2 CSV yazıcısı, Windows
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")
Bu
\r\n
\r\n
yazdırır. Ama, oluşturulan CSV dosyası lineterminator kullanır '\ r \ r \ n'
0,1,2,3,4
0,-1,-2,-3,-4
a,b,c,d,e
A,B,C,D,E
Bu bir hata mı yoksa csv.writer benim kullanımında sorun var?
Python sürümü:
ActivePython Python 2.6.2 (r262: 71600, 21 Nisan 2009, 15:05:37) dayalı 2.6.2.2 (ActiveState Software Inc.) [MSC v belirtildiği gibi Windows Vista win32'de
üzerinde 0,1500 32 bit (Intel)]
Sorununuzu yeniden oluşturamıyorum: $ file test.csv test.csv: ASCII metni, CRLF satır sonlandırıcılarıyla –
@lutz: $ komut istemi, * x, anlamsızlık anlamına gelir (Python 2.x içinde) metin arasında mod ve ikili mod; OP, Windows kullanıyor. –
@wierob: .replace'ı (...) değiştirin. Değiştirin (...), yerleşik repr() kullanın –