Python 中Windows 上的CSV 輸出檔附加回車問題
在Python 中產生CSV 檔案時,可能會無意間加入額外的回車返回在每行的末尾。可以在以下程式碼中觀察到此行為:
import csv with open('test.csv', 'w') as outfile: writer = csv.writer(outfile, delimiter=',', quoting=csv.QUOTE_MINIMAL) writer.writerow(['hi', 'dude']) writer.writerow(['hi2', 'dude2'])
預期輸出:
hi,dude hi2,dude2
實際輸出(Windows):
hi,dude\r\r\nhi2,dude2\r\r\n
原因以及Python 3 的解:
在Python 3中,此由於預設的通用換行符翻譯功能而出現問題。要解決此問題,請使用newline='' 開啟檔案以停用此翻譯:
with open('output.csv', 'w', newline='', encoding='utf-8') as f: writer = csv.writer(f) ...
Python 2 的原因和解決方案:
在Windows 上使用Python 2 ,出現此問題是因為CSV 被視為二進位格式,而rn 是記錄分隔符號。如果檔案以文字模式打開,Python 會將 n 替換為 rn,從而產生雙回車。解決方案是始終以二進位模式開啟檔案:
with open('test.csv', 'wb') as outfile: writer = csv.writer(outfile, delimiter=',', quoting=csv.QUOTE_MINIMAL) ...
以上是為什麼我的 Python CSV 輸出在 Windows 上有額外的回車符號?的詳細內容。更多資訊請關注PHP中文網其他相關文章!