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

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

代碼 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時輸出多余的空行解決方法