如何使用Python编写的CSV文件,并且在每一行之间都有空行?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (142)
import csv

with open('thefile.csv', 'rb') as f:
  data = list(csv.reader(f))
  import collections
  counter = collections.defaultdict(int)

  for row in data:
        counter[row[10]] += 1


with open('/pythonwork/thefile_subset11.csv', 'w') as outfile:
    writer = csv.writer(outfile)
    for row in data:
        if counter[row[10]] >= 504:
           writer.writerow(row)

这段代码可以通过thefile.csv,进行更改,并将结果写入thefile_subset1...

但是,当我在MicrosoftExcel中打开结果CSV时,在每个记录之后都会有一个额外的空行!

有没有办法使它不加额外的空行?

提问于
用户回答回答于

以二进制模式打开文件“WB”在Python 3+中是不能正常工作的。或者说,在编写数据之前,必须将数据转换为二进制数据。

应该将它保持在文本模式:

with open('/pythonwork/thefile_subset11.csv', 'w', newline='') as outfile:
用户回答回答于

在Python 2中,打开outfile有模式'wb'而不是'w'...csv.writer写字\r\n直接进入文件。如果不打开文件二进制模式,它将写入\r\r\n

在Python 3中,所需的语法改变了,所以打开outfile附加参数newline=''相反。

例子:

# Python 2
with open('/pythonwork/thefile_subset11.csv', 'wb') as outfile:
    writer = csv.writer(outfile)

# Python 3
with open('/pythonwork/thefile_subset11.csv', 'w', newline='') as outfile:
    writer = csv.writer(outfile)

文档链接

所属标签

可能回答问题的人

  • 应用案例分享

    1 粉丝490 提问19 回答
  • 学生

    3 粉丝476 提问13 回答
  • uncle_light

    5 粉丝518 提问12 回答
  • 最爱开车啦

    8 粉丝503 提问12 回答

扫码关注云+社区

领取腾讯云代金券