こんにちは。
本日は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'])
以上です。