なんだかGoodVibes

日々の勉強メモです。

【Python】csvファイルの書き込み(csvモジュール)

こんにちは。
本日はPythonメモです。

概要

csvモジュールを使用した
書き込み処理のメモです。

読み込みについては以下の記事を参考にしてください。

【Python】csvファイルの読み込み(csvモジュール) - なんだかGoodVibes


サンプルコード

csvファイルの書き込み
import csv

f = open('output.csv', mode='w', encoding='utf-8', newline='')
writer = csv.writer(f)
writer.writerow(['aaa', 'bbb', 'ccc'])
writer.writerow(['ddd', 'eee', 'fff'])
f.close()

csv読み込みの際にもopenは使用しました。
今回のサンプルでは、引数をいくつか指定しています。

modeは、読み込みのモードです。
デフォルトは、r(読み込み用に開く)となっています。
指定可能なモードは以下です。

  • 'r' :読み込み用に開く 。(デフォルト)
  • 'w' :書き込み用に開く。上書き保存する。
  • 'x' :排他的な生成に開く。ファイルが存在する場合はエラーとなる。
  • 'a' :書き込み用に開く。ファイルが存在する場合は末尾に追記する。
  • 'b' :バイナリモード
  • 't' :テキストモード (デフォルト)
  • '+' :更新用に開く 。(読み込み・書き込み用)

encodingエンコーディングの指定です。
今回のサンプルではutf-8を指定しています。
エンコーディングは、テキストモードの場合のみの指定となります。

newlineは改行文字のパースの指定です。
以下が指定可能です。

  • ''
  • None
  • '\n'
  • '\r'
  • '\r\n'

生成されたファイルの内容は以下のようになります。

aaa,bbb,ccc
ddd,eee,fff


tsvファイルの書き込み

上記と同じ要領でtsvファイルを書き込むことも可能です。
その場合は、writerの引数でdelimiter='\t'を指定します。
delimiterは区切り文字の指定です。

import csv

f = open('output.tsv', mode='w', encoding='utf-8', newline='')
writer = csv.writer(f, delimiter='\t')
writer.writerow(['aaa', 'bbb', 'ccc'])
writer.writerow(['ddd', 'eee', 'fff'])
f.close()


withを使用したcsv書き込み

withを使用することでcloseを呼び出す必要がなくなります。
例えば、csvファイルの書き込みサンプルをwithを使って記載すると
以下のようになります。

import csv

with open('output.csv', mode='w', encoding='utf-8', newline='') as f:
    writer = csv.writer(f)
    writer.writerow(['aaa', 'bbb', 'ccc'])
    writer.writerow(['ddd', 'eee', 'fff'])



以上です。