pythonを使用してcsvファイルに書き込む必要があり、各イテレータ項目は新しい行で開始する必要があります。したがって、使用している区切り文字は「\ n」です。各リストが書き込まれた後、次のリスト次のセルから書き込む必要があります。以下のように:
lol = [[1,2,3],[4,5,6]]
Csvは次のようになります。
1 4
2 5
3 6
私が試したこと:
file = open("test.csv", "wb")
fileWriter = csv.writer(file , delimiter='\n',quotechar='|', quoting=csv.QUOTE_MINIMAL)
spamWriter.writerow([1,2,3])
spamWriter = csv.writer(file , delimiter=',',quotechar='|', quoting=csv.QUOTE_MINIMAL)
spamWriter.writerow([4,5,6])
file.close()
以下のような結果になります。
1
2
3
4 5 6
Csvモジュールを使用して、次のような出力を取得するにはどうすればよいですか。
1 4
2 5
3 6
ここでのスペースは、csvファイル内のコンマを意味します。
ありがとう。
Zipを使用せずに、次のことができます。
import csv
lol = [[1,2,3],[4,5,6],[7,8,9]]
item_length = len(lol[0])
with open('test.csv', 'wb') as test_file:
file_writer = csv.writer(test_file)
for i in range(item_length):
file_writer.writerow([x[i] for x in lol])
これはtest.csvに出力されます:
1,4,7
2,5,8
3,6,9
まず、Zip()
を使用して入力を転置します
>>> Zip(*lol)
[(1, 4), (2, 5), (3, 6)]
その後、それをcsw.writer
に渡します。例:.
with open("test.csv", "wb") as f:
fileWriter = csv.writer(f, delimiter=',',quotechar='|', quoting=csv.QUOTE_MINIMAL)
for row in Zip(*lol):
fileWriter.writerow(row)
...結果:
$ cat test.csv
1,4
2,5
3,6
Python3を使用している場合は、テキスト形式の「wt」でファイルを開く必要があります。csv
にはwriterows
があり、すべてを一度に書き込むことができます。ここに例があります:
data=[("test", "value1", "value2"), ("test2", "value3", "value4")]
with open('my.csv','wt') as out:
csv_out=csv.writer(out)
csv_out.writerows(data)
質問がリストを変換する方法を尋ねていることに気づきました。これは別のステップであり、これが私がそれを行う方法です。
lol = [[1,2,3],[4,5,6]]
data = Zip(lol[0],lol[1])