使用Python写入CSV会添加空行

时间:2013-02-04 19:03:17

标签: python csv python-3.3

我正在尝试写入CSV文件,但中间有空白行。如何删除空白行?

import csv
b = open('test.csv', 'w')
a = csv.writer(b)
data = [['Me', 'You'],\
        ['293', '219'],\
        ['54', '13']]
a.writerows(data)
b.close()

5 个答案:

答案 0 :(得分:116)

在几个方面(docs)中使用Python 3中更改csv模块的方式,至少就打开文件的方式而言。无论如何,像

import csv
with open('test.csv', 'w', newline='') as fp:
    a = csv.writer(fp, delimiter=',')
    data = [['Me', 'You'],
            ['293', '219'],
            ['54', '13']]
    a.writerows(data)

应该有用。

答案 1 :(得分:21)

如果您在Windows上使用Python 2.x,则需要将行open('test.csv', 'w')更改为open('test.csv', 'wb')。那就是你应该把文件打开为binary file

但是,正如其他人所说,Python 3.x中的文件界面已经改变。

答案 2 :(得分:15)

import csv

hello = [['Me','You'],['293', '219'],['13','15']]
length = len(hello[0])

with open('test1.csv', 'wb') as testfile:
    csv_writer = csv.writer(testfile)
    for y in range(length):
        csv_writer.writerow([x[y] for x in hello])

会产生这样的输出

Me You
293 219
13 15

希望这有帮助

答案 3 :(得分:5)

您需要以二进制b模式打开文件以处理Python 2中的空白行。这在Python 3中不是必需的。

因此,请将open('test.csv', 'w')更改为open('test.csv', 'wb')

答案 4 :(得分:3)

Pyexcel适用于Python2和Python3,没有任何问题。

用pip快速安装:

pip install pyexcel

之后,只完成了3行代码和工作:

import pyexcel
data = [['Me', 'You'], ['293', '219'], ['54', '13']]
pyexcel.save_as(array = data, dest_file_name = 'csv_file_name.csv')