Python でファイルへ書き込み
ここでは Python でファイルにテキスト情報 (文字列) を書き込むための、基本的な手順について説明します。
Python のファイル書き込みの基本
Python でファイルに文字列を書き込む例は、次のようになります。
f = open('data1.txt', mode='w')
f.write('Hello, world!')
f.close()
ファイルに書き込むには、まずファイルを開く必要があります。
1行目では open() 関数を使って、ファイルを開いています。ひとつ目の引数 data1.txt はファイル名です。二つ目の引数はモードです。
ここではモードとして 'w' (writing, 書き込み) を指定しています。
'w' モードの場合、指定したファイルがファイルが存在しなければ、新しくファイルが作成されます。存在していれば、そのファイルの中身は消去されます。
open() 関数は、ファイルオブジェクトを返します。
2行目ではファイルオブジェクトの write() メソッドを使って、ファイルに Hello, world! という文字列を書き込んでいます。
3行目ではファイルオブジェクトの close() 関数を呼び、ファイルを閉じています。
with を使ってファイルの閉じ忘れを防ぐ
Python のファイルオブジェクトはコンテキストマネージャを実装しています。 このため with を次のように使うことで、ファイルの閉じ忘れを防ぐことができます。
with open('data1.txt', mode='w') as f:
f.write('Hello, world!')
with を使えば、close を明示的に呼ぶ必要がなくなります。 with ブロックから抜ける時に、自動的にファイルが閉じられます。
ファイルへ追記で書き込む
上の例では 'w' モードでファイルを開いたので、元々存在していたファイルの中身は消えてしまいます。
ファイルを「追記モード」で開くには、モードに'a' (append) を指定します。
第一引数で指定したパスのファイルが既に存在している場合は、そのファイルの内容を削除せずに追記します。
次のコードを実行すると、現在のディレクトリに data1.txt という名前のファイルがあると、 そのファイルの最後尾に Hello, world! という文字が追加で書き込まれます。
with open('data1.txt', mode='a') as f:
f.write('Hello, world!')
2回以上続けて実行すると、 実行した回数分だけHello, world! という文字が書き込まれます。
ファイルへの書き込みで改行
文字列の途中で改行したい場合は、 \n で改行できます。
with open('data1.txt', 'w') as f:
f.write('Hello\nworld!')
これによって、 \n の位置に改行文字が入ります。Mac の場合 0x0a、Windows では 0x0d 0x0a が挿入されます。
以上で、Python でファイルに文字列を書き込む基本的な方法について説明しました。