首頁 > 後端開發 > Python教學 > 為什麼我的 Python CSV 輸出在 Windows 上有額外的回車符號?

為什麼我的 Python CSV 輸出在 Windows 上有額外的回車符號?

Patricia Arquette
發布: 2024-12-03 19:30:13
原創
479 人瀏覽過

Why Does My Python CSV Output Have Extra Carriage Returns on Windows?

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板