Python學習中,當使用writerow時輸出多余的空行解決方法
阿新 • • 發佈:2018-12-11
代碼 erro typeerror nat 技術 換行 lin str term
今天在學習用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中加入linwterminator=‘\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文件沒有了多余的空行:
Python學習中,當使用writerow時輸出多余的空行解決方法