首页 > 后端开发 > Python教程 > 为什么我的 Python CSV 输出在 Windows 上有额外的回车符?

为什么我的 Python CSV 输出在 Windows 上有额外的回车符?

Patricia Arquette
发布: 2024-12-03 19:30:13
原创
481 人浏览过

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
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板