Python3でCSVを書き出す
作成: 2021-07-04
更新: 2021-07-04
Python3では、csvモジュールを使ってCSVを書き出すことができます。
環境
- Python 3.8.5
CSVデータをファイルに書き出す
ファイルに対してCSVデータを書き込むには、csvモジュールのwriter関数が作成するwriterオブジェクトを使います。
以下のコードは、example1.csv
というファイルにCSVデータを書き込みます。
# example1.py
import csv
csv_data = [
["header_1", "header_2"],
["data_1", "data_2"],
["data_3", "data_4"]
]
with open('example1.csv', 'w') as out_file:
writer = csv.writer(out_file) # ファイルオブジェクトを渡して、書き込みオブジェクトを得る
for row in csv_data:
writer.writerow(row)
まず、writer
変数にwriterオブジェクトを作成します。
writter.writerow
メソッドでファイルにCSVの行データを書き込んでいきます。
実行すると以下のようなCSVファイルが作成されます。
$ cat example1.csv
header_1,header_2
data_1,data_2
data_3,data_4
CSVデータを標準出力に書き出す
たまに、何かしらのデータをCSVに変換して標準出力に書き出したい場合があります。
そのような時は、以下のようにcsv.writer
にsys.stdout
を指定すると実現できます。
# example2.py
import csv
import sys
csv_data = [
["header_1", "header_2"],
["data_1", "data_2"],
["data_3", "data_4"]
]
writer = csv.writer(sys.stdout)
for row in csv_data:
writer.writerow(row)
以下のように、標準出力にCSVを書き出すことができました。
$ python3 example2.py
header_1,header_2
data_1,data_2
data_3,data_4
これで、中間ファイルを作成せずに次のコマンドにCSVデータを引き渡すというようなことができるようになります。