小编典典

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

all

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.

但是,当我在 Microsoft Excel 中打开生成的 csv 时,每条记录后都会有一个额外的空白行!

有没有办法让它不放一个额外的空行?


阅读 413

收藏
2022-03-06

共1个答案

小编典典

Python 2outfile中,使用模式打开'wb'而不是'w'. csv.writer直接写入\r\n文件。如果您不以
二进制 模式打开文件,它将写入\r\r\n,因为在 Windows 文本 模式下会将每个文件\n转换为\r\n.

Python 3 中,所需的语法发生了变化,csv模块现在可以使用 text mode
'w',但还需要newline=''(empty string) 参数来抑制 Windows 行转换(请参阅下面的文档链接)。

例子:

# 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)

文档链接

2022-03-06