我正在尝试写入CSV文件,但中间有空白行。如何删除空白行?
import csv
b = open('test.csv', 'w')
a = csv.writer(b)
data = [['Me', 'You'],\
['293', '219'],\
['54', '13']]
a.writerows(data)
b.close()
答案 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')