在 python 中使用 writer 后行之间的空白

新手上路,请多包涵

我现在正在使用 csv 包,每次当我写入一个新的 csv 文件并用 excel 打开它时,我会发现每两行之间有一个空行。

 filereader = csv.reader(open("tests.csv", "r"), delimiter=",")
filewriter = csv.writer(open("test_step1.csv", "w"), delimiter=",")
#Delete header
for row in filereader:
    if row[0].isdigit():
        filewriter.writerow(row)

在此处输入图像描述

原文由 user1998777 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 500
2 个回答

您需要以 wb 模式打开文件尝试:

 import csv

filereader = csv.reader(open("tests.csv", "r"), delimiter=",")
filewriter = csv.writer(open("test_step1.csv", "wb"), delimiter=",", newline="")
#Delete header
for row in filereader:
    if row[0].isdigit():
        filewriter.writerow(row)

csv.writer 直接将 \r\n 写入文件。

如果您不以 二进制模式 打开文件,它将写入 \r\r\n 因为在 Windows 文本模式下会将每个 \n 转换为 \r\n

编辑:

对于 python 3,必须根据 此答案newline="" 添加到 csv.writer

原文由 Noelkd 发布,翻译遵循 CC BY-SA 3.0 许可协议

只需在打开文件的位置添加 newline=” 即可。这个对我有用。例如,csvFileName = open(‘file.csv’, ‘w’, newline= “)

原文由 Seyyed Hossein SeyyedAghaei Re 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题