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时,每条记录后面都有一个额外的空行!

有没有办法让它不加一个空行?

推荐答案

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

Python 3中,所需的语法发生了变化,csv模块现在使用文本模式'w'工作,但还需要newline=''(空字符串)参数来 suppress 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)

文档链接

Python相关问答推荐

如何使用Google Gemini API为单个提示生成多个响应?

Pandas实际上如何对基于自定义的索引(integer和非integer)执行索引

抓取rotowire MLB球员新闻并使用Python形成表格

如何在polars(pythonapi)中解构嵌套 struct ?

如何使用它?

如何根据一列的值有条件地 Select 前N组?

mypy无法推断类型参数.List和Iterable的区别

用砂箱开发Web统计分析

为什么numpy. vectorize调用vectorized函数的次数比vector中的元素要多?

python panda ExcelWriter切换动态公式到数组公式

如何使用使用来自其他列的值的公式更新一个rabrame列?

如何在Gekko中使用分层条件约束

在用于Python的Bokeh包中设置按钮的样式

没有内置pip模块的Python3.11--S在做什么?

如何将返回引用的函数与pybind11绑定?

Python协议不兼容警告

比较两个有条件的数据帧并删除所有不合格的数据帧

如何在Quarto中的标题页之前创建序言页

如何在Python中实现高效地支持字典和堆操作的缓存?

如何批量训练样本大小为奇数的神经网络?