1. 程式人生 > >Python學習中,當使用writerow時輸出多餘的空行解決方法

Python學習中,當使用writerow時輸出多餘的空行解決方法

今天在學習用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檔案沒有了多餘的空行: