当前位置: 首页 > 面试题库 >

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

山煜祺
2023-03-14
问题内容
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中,请outfile使用模式'wb'而不是来打开'w'。该csv.writer写入\r\n直接到文件中。如果你未以二进制模式打开文件,它将写入,\r\r\n因为在Windows 文本模式下会将每个文件\n转换为\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)


 类似资料:
  • 在生成的csv输出文件中,每行scrapy输出之间都有不需要的空行。 我已经从python2迁移到Python3,我使用的是Windows10。因此,我正在为python3调整我的scrapy项目。 我目前(也是目前唯一)的问题是,当我将scrapy输出写入CSV文件时,每行之间会有一行空行。这已经在这里的几个帖子中强调了(它与视窗有关),但我无法找到一个工作的解决方案。 碰巧,我还在piplin

  • 问题内容: 我正在使用DictWriter将字典中的数据输出到csv文件。为什么CSV文件的每个数据行之间都有一个空白行?这不是什么大问题,但是我的数据集很大并且不适合一个csv文件,因为“ double-spacing”使文件中的行数增加了一倍,因此行数太多。 我写字典的代码是: 问题答案: 默认情况下,模块中的类使用Windows样式的行终止符(),而不使用Unix样式的()。这可能是造成明显

  • 问题内容: 我有以下代码: 在控制台中,使用System.out.println(line)输出的代码为我提供了正确的输出。但是,当我打开CSV文件时,它似乎是反向写入的。Excel首先抱怨行数。但是,仅显示原始数据集的最后一行。数据集(以一种低效的方式进行了预处理)包含1000多个行。因此,我不能简单地附加每个条目。 有更好的方法吗? 提示和技巧非常受欢迎。更进一步,我尝试了一些编写器:-CSV

  • 我有以下代码: 使用System在我的控制台中输出代码。出来println(line)提供了正确的输出。然而,当我打开CSV文件时,它似乎是反向写入的。Excel首先抱怨行的数量。但是,仅显示原始数据集的最后一行。数据集(预处理效率很低)包含1000多行。因此,我不能简单地附加每个条目。 有更好的方法吗? 提示和技巧是非常受欢迎的。此外,我还尝试了几种编写器:-CSVwrite-BufferedW

  • 本文向大家介绍Python用csv写入文件_消除空余行的方法,包括了Python用csv写入文件_消除空余行的方法的使用技巧和注意事项,需要的朋友参考一下 只做简单地记录,方便一下使用!python关于csv模块的介绍网上有很多资料,这里就不在赘诉。直接给出代码和解释。 数据: 一、csv读入文件消除空余行 二、读取为一个元组的序列 在上面的代码中, row 会是一个列表。因此,为了访问某个字段,

  • 问题内容: 我有一个包含unicode字符串的词典列表。 可以将字典列表写入CSV文件。 我希望CSV文件以UTF8编码。 该模块无法处理将unicode字符串转换为UTF8的操作。 该模块文档具有的一切转换为UTF-8的例子: 它也有一个类。 但是…我该如何处理这些?他们是否不必将自己插入其中,以捕获反汇编的字典并对其进行编码,然后再将其写入文件中?我不明白 问题答案: 更新 :第三方unico