在Windows 系統上用Python 寫CSV 檔案時,出現意外問題,其中附加了一個回車符字元出現在檔案中每行的末尾。這種與預期 rn 行終止的偏差引起了關注,讓開發人員想知道根本原因以及這是否是預期行為。
為了深入研究此問題的根源,讓我們分析提供的程式碼片段:
此程式碼旨在產生一個名為test.csv 的CSV 文件,其中包含兩行數據:['hi', 'dude'] 和['hi2', '老兄2']。然而,在檢查產生的檔案時,我們發現每一行都帶有一個額外的 r 字元後綴。
為了理解這種行為,我們轉向 csv 模組的 Python 文件。根據文檔,建議在所有平台上開啟帶有 newline='' 的文件以停用通用換行符翻譯。
對於 Python 3:
默認,在 Windows 上,csv 模組使用通用換行符轉換,在寫入檔案時將 rn 行終止符轉換為 n。為了防止這種翻譯並保持原始的rn 行終止符,需要使用newline='' 開啟文件,如下所示:
對於Python 2:
在Windows for Python 2 上,在將檔案傳遞給任何一個之前,使用「rb」或「wb」以二進位模式開啟檔案至關重要csv.reader 或csv.writer。儘管該文件是文字文件,但 CSV 被相關庫視為二進位格式,並以 rn 分隔記錄。在文字模式下寫入此分隔符號會提示 Python 執行時間將 n 替換為 rn,從而在檔案中產生觀察到的 rrn 序列。有關這方面的更多詳細信息,請參閱之前的答案。
以上是為什麼我的 Python CSV 檔案在 Windows 上添加額外的回車符?的詳細內容。更多資訊請關注PHP中文網其他相關文章!