Python學習中,當使用writerow時輸出多餘的空行解決方法
阿新 • • 發佈:2018-12-10
今天在學習用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檔案沒有了多餘的空行: