產生錯誤的行終止按照its documentation csv.writer應該使用 '\ r \ n' 作爲默認lineterminator。的Python 2 CSV作家在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")
這將打印
\r\n
\r\n
預期。但是,創建的CSV文件使用lineterminator「\ r \ r \ n」
0,1,2,3,4
0,-1,-2,-3,-4
a,b,c,d,e
A,B,C,D,E
這是一個bug或者是有什麼錯誤的,我csv.writer的使用情況?
Python版本:
ActivePython的基於Python的2.6.2 (r262:71600,2009年4月21日,15時05分37秒)2.6.2.2(ActiveState的 軟件公司) [MSC v 0.1500 32位(英特爾)]在Win32
在Windows Vista上
我無法重現你的問題:$文件test.csv test.csv:ASCII文本,以CRLF行終止 – 2009-07-23 07:37:04
@lutz:$提示符手段* X也就是說,文本沒有區別(在Python 2.x的)模式和二進制模式; OP正在運行Windows。 – 2009-07-23 07:56:15
@wierob:失去.replace(...)代替(...),可以使用內置的再版() – 2009-07-23 08:00:07