相关疑难解决方法(0)

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

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)
Run Code Online (Sandbox Code Playgroud)

此代码读取thefile.csv,进行更改并将结果写入thefile_subset1.

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

有没有办法让它没有多余的空白?

python windows csv

394
推荐指数
7
解决办法
24万
查看次数

Python 2 CSV编写器在Windows上生成错误的行终止符

根据其文档,csv.writer默认情况下应使用'\ r \n'作为lineterminator.

import csv

with open("test.csv", "w") as f:
    writer = csv.writer(f)

    rows = [(0,1,2,3,4),
           (-0,-1,-2,-3,-4),
           ("a","b","c","d","e"),
           ("A","B","C","D","E")]           

    print writer.dialect.lineterminator.replace("\r", "\\r").replace("\n", "\\n")
    writer.writerows(rows)
    print writer.dialect.lineterminator.replace("\r", "\\r").replace("\n", "\\n")
Run Code Online (Sandbox Code Playgroud)

这打印

\r\n
\r\n
Run Code Online (Sandbox Code Playgroud)

正如所料.但是,创建的csv文件使用了行终止符'\ r \n\r \n'

0,1,2,3,4

0,-1,-2,-3,-4

a,b,c,d,e

A,B,C,D,E
Run Code Online (Sandbox Code Playgroud)

这是一个错误还是我使用csv.writer时出了什么问题?

Python版本:

在Win32上基于Python 2.6.2(r262:71600,2009年4月21日,15:05:37)[MSC v.1500 32位(英特尔)]的ActivePython 2.6.2.2(ActiveState Software Inc.)

在Windows Vista上

python windows csv line-endings python-2.x

43
推荐指数
3
解决办法
3万
查看次数

标签 统计

csv ×2

python ×2

windows ×2

line-endings ×1

python-2.x ×1