首页 > 后端开发 > Python教程 > 为什么在 Windows 上我的 CSV 文件中会添加额外的回车符?

为什么在 Windows 上我的 CSV 文件中会添加额外的回车符?

Barbara Streisand
发布: 2024-11-28 09:02:10
原创
613 人浏览过

Why Are Extra Carriage Returns Added to My CSV Files on Windows?

Windows 上的 CSV 文件中出现额外回车:了解原因

在写入 CSV 文件的 Python 代码中,您可能会遇到这样的问题:每行都附加一个Windows 系统上的额外回车符(“r”)。这种意外行为可能会使生成的 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'])
登录后复制

在 Python 3 中,默认值CSV 写入的行为是使用通用换行符翻译。这意味着在 Windows 上,“rn”行终止符会自动转换为单个“n”。但是,当使用“w”模式打开文件时,此转换将被禁用。因此,作者会在每行后面附加“rn”。

要禁用通用换行符翻译,请在打开文件时使用 newline='' 参数:

with open('output.csv', 'w', newline='', encoding='utf-8') as f:
    writer = csv.writer(f)
    ...
登录后复制

在 Python 2 中,打开文件进行 CSV 读取或写入时必须使用二进制模式(“rb”或“wb”) Windows:

with open('test.csv', 'wb') as outfile:
    writer = csv.writer(outfile, delimiter=',', quoting=csv.QUOTE_MINIMAL)
    ...
登录后复制

通过以二进制模式打开文件,可以避免换行符转换,确保“rn”按预期写入文件。

以上是为什么在 Windows 上我的 CSV 文件中会添加额外的回车符?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板