今天在學習用Python進行CSV文件存儲
當我以csv格式寫入文件的時候,文件讀取的時候出現了多余的空行,代碼:
1 import csv 2
3 with open('data.csv', 'w') as csvfile: 4 writer = csv.writer(csvfile) 5 writer.writerow(['id', 'name', 'age']) 6 writer.writerow(['10001', 'Mike', '20']) 7 writer.writerow(['10002', 'Bob', '22']) 8 writer.writerow(['10003', 'Jordan', '21'])
出現空行的結果:
經過網上的資料查閱后,問題產生的原因是csv輸出的效果是行末是CR,然后是一個CRLF的換行符,網上給出的解決方法是將寫入格式改為binary模式。
但我運行后卻報出這樣的錯誤:TypeError: a bytes-like object is required, not 'str' ,因為我寫入的是字符串數據,於是我采取了另一種解決方法:
在加一個csv.writer中加入lineterminator='\n'的參數,修改后的代碼為:
1 import csv 2 3 with open('data.csv', 'w') as csvfile: 4 writer = csv.writer(csvfile, lineterminator='\n') 5 writer.writerow(['id', 'name', 'age']) 6 writer.writerow(['10001', 'Mike', '20']) 7 writer.writerow(['10002', 'Bob', '22']) 8 writer.writerow(['10003', 'Jordan', '21'])
此時創建的csv文件沒有了多余的空行: