用Python编写的CSV文件在每一行之间都有空行。

用Python编写的CSV文件在每一行之间都有空行。

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

  for row in data:
        counter[row[10]] += 1with 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时,在每个记录之后都会有一个额外的空行!

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


红颜莎娜
浏览 1479回答 3
3回答

子衿沉夜

简单的答案是csv文件应始终以二进制模式打开。无论是输入还是输出,与Windows上的情况一样,行结束都会出现问题。特别是在输出时,csv模块将编写\r\n(标准CSV行终止符),然后(在文本模式下)运行时将替换\n通过\r\n(Windows标准行终止符)给出了\r\r\n.摆弄lineterminator不是解决办法。

三国纷争

以二进制模式打开文件“WB”不会在Python 3+中工作。或者说,您必须在编写数据之前将数据转换为二进制数据。那只是个麻烦。相反,您应该将它保持在文本模式中,但将换行符重写为空。就像这样:with open('/pythonwork/thefile_subset11.csv', 'w', newline='') as outfile:
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python