提供的代码片段生成一个带有意外额外回车符的 CSV 文件(r) 每行。而不是所需的输出:
hi,dude hi2,dude2
文件读取为:
hi,dude\r \r hi2,dude2\r \r
此行为是由于平台特定的行终止处理而出现的。
官方 CSV 文档建议在以下情况下使用 newline=''打开文件以禁用通用换行符翻译:
with open('output.csv', 'w', newline='', encoding='utf-8') as f: writer = csv.writer(f) # ...
默认情况下,根据 RFC 4180,CSV 编写器以“rn”终止每一行。
在 Windows 上,文件应以二进制模式打开(“rb”或“wb”),然后将它们传递给 csv.reader 或 csv.writer。尽管 CSV 是一种文本格式,但相关库将其视为二进制格式,并用“rn”分隔记录。当以文本模式编写时,Python 运行时会将 'n' 替换为 'rn',从而导致观察到额外的回车符。
以上是为什么我的 Python CSV 编写器在 Windows 上添加额外的回车符?的详细内容。更多信息请关注PHP中文网其他相关文章!