首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用Python编写的CSV文件的每行之间都有空行

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

Stack Overflow用户
提问于 2010-07-28 06:14:43
回答 6查看 401.4K关注 0票数 575
代码语言:javascript
复制
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时,每条记录后面都有一个额外的空行!

有没有办法让它不再多放一个空行?

EN

回答 6

Stack Overflow用户

发布于 2014-02-16 06:05:38

在Python 3+中,以二进制模式"wb“打开文件将不起作用。或者更确切地说,在写入数据之前,必须将数据转换为二进制。这只是个小麻烦。

相反,您应该将其保持在文本模式,但将换行符重写为空。如下所示:

代码语言:javascript
复制
with open('/pythonwork/thefile_subset11.csv', 'w', newline='') as outfile:
票数 79
EN

Stack Overflow用户

发布于 2017-11-04 03:51:10

我正在写这个答案w.r.t。迁移到python 3,因为我最初遇到了同样的问题。

我应该使用PySerial从arduino获取数据,并将其写入.csv文件。在我的例子中,每次读取都以'\r\n'结尾,所以换行符总是分隔每一行。

在我的例子中,newline=''选项不起作用。因为它显示了一些错误,如:

代码语言:javascript
复制
with open('op.csv', 'a',newline=' ') as csv_file:

ValueError: illegal newline value: ''

所以他们似乎不接受在这里省略换行符。

这里只看到一个答案,我在writer对象中提到了行终止符,比如,

writer = csv.writer(csv_file, delimiter=' ',lineterminator='\r')

这对我跳过额外的换行符很有效。

票数 4
EN

Stack Overflow用户

发布于 2018-12-02 11:52:50

使用下面定义的方法将数据写入CSV文件。

代码语言:javascript
复制
open('outputFile.csv', 'a',newline='')

只需在open方法中添加一个额外的newline=''参数:

代码语言:javascript
复制
def writePhoneSpecsToCSV():
    rowData=["field1", "field2"]
    with open('outputFile.csv', 'a',newline='') as csv_file:
        writer = csv.writer(csv_file)
        writer.writerow(rowData)

这将写入CSV行,而不创建额外的行!

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3348460

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档