在 Windows 上使用 Python 处理 CSV 文件中的意外回车
在 Python 中生成 CSV 文件时可能会出现一个特殊问题:在 Windows 系统上,额外的回车符 (r) 出现在每行的末尾。这与预期的行为不同,其中每行以单个回车符 (r) 或换行符 (n) 字符终止,具体取决于操作系统。
为什么会发生这种情况
在 Windows 上,Python 处理 CSV 文件的默认行为是将行分隔符解释为通用换行符 (n),这与标准 Unix 行分隔符不同(rn)。因此,CSV 编写器在写入文件时会附加双回车符 (rr),从而导致出现额外的空行。
修复问题
要解决此问题,您可以通过在打开文件时指定 newline='' 来禁用通用换行符翻译。
Python 3:
with open('output.csv', 'w', newline='', encoding='utf-8') as f: writer = csv.writer(f)
Python 2:
对于 Python 2,建议以二进制模式打开文件('rb' 或 'wb '),然后将其传递给 CSV 编写器。这是因为 CSV 被认为是一种二进制格式,行分隔符存储为原始字节。
with open('output.csv', 'wb') as f: writer = csv.writer(f)
通过遵循这些建议,您可以防止将额外的回车符添加到 CSV 文件中,确保其遵循到所需的行分隔约定。
以上是如何消除 Windows 上 Python CSV 文件中的意外回车?的详细内容。更多信息请关注PHP中文网其他相关文章!