76

CSV ファイルに書き込もうとしていますが、間に空白行があります。空白行を削除するにはどうすればよいですか?

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

5 に答える 5

117

csvモジュールの使用方法は、少なくともファイルを開く方法に関して、 Python 3 でいくつかの点(ドキュメント)で変更されました。とにかく、のようなもの

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)

動作するはずです。

于 2013-02-04T19:15:43.720 に答える
21

WindowsでPython2.xを使用している場合は、行open('test.csv', 'w')をに変更する必要がありますopen('test.csv', 'wb')つまり、ファイルをバイナリファイルとして開く必要があります。

ただし、他の人が述べているように、Python3.xではファイルインターフェイスが変更されています。

于 2013-02-04T19:05:36.027 に答える
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

お役に立てれば

于 2013-02-04T19:10:26.983 に答える
5

Python 2 で空白行を処理するには、ファイルをバイナリ モードで開く必要がありますb。これは Python 3 では必要ありません。

に変更open('test.csv', 'w')open('test.csv', 'wb')ます。

于 2013-02-04T19:06:57.773 に答える
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')
于 2016-03-23T12:59:18.560 に答える