gpt4 book ai didi

python - Python 3 中的 writerow 总是在原始行之间写一个空行,Python2 工作得很好。为什么?

转载 作者:行者123 更新时间:2023-12-01 07:33:57 25 4
gpt4 key购买 nike

我的代码有问题。在Python2中,我使用withopen在csv中打印一些内容,效果很好。当我使用 Python 3 时,我必须删除 BinaryMode (wb),然后它总是在正确的行之间打印一个空行。为什么?

with open('C:\\Users\\KDD1SGM\\Desktop\\example\\exportPython3.csv', mode="wb") as out: 
writer = csv.writer(out, delimiter=";")
writer.writerow(writeData)
for i in range(len(newfunctions)):
writer.writerow(newfunctions[i])

输出如下:

line1: 1,2,3

line2: 4,5,6

....

当我尝试使用 open (对于 Python3)删除二进制模式时,输出 csv 是:

line1: 1,2,3

line2: 4,5,6

line3: ...

为什么现在有一个空行?以及如何删除它?

最佳答案

在 Python 2 中,如果以 'wb' 模式打开 out,则 csv.writer 写入 \r\n 直接进入文件。仅当您以二进制模式打开它时,它才会写入 \r\r\n,因为在 Windows 上它会将每个 \n 转换为 \r\n.

幸运的是,在 Python 3 中,语法发生了变化,因此使用附加参数 newline='' 打开 out 以避免任何麻烦。

示例:

with open('C:\\Users\\KDD1SGM\\Desktop\\example\\exportPython3.csv', mode="w", newline='') as out: 
writer = csv.writer(out, delimiter=";")
writer.writerow(writeData)
for i in range(len(newfunctions)):
writer.writerow(newfunctions[i])

来源

关于python - Python 3 中的 writerow 总是在原始行之间写一个空行,Python2 工作得很好。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57090536/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com