MathPython
17 Jul 2024 21 Feb 2018

Python でファイルに書きこむ

テキストに文字列を書きこむプログラムを考えます。

file = open('data.txt', 'w')

try:
    file.write('apple')
finally:
    file.close()

data.txt

apple

ここで、このプログラムファイルと data.txt は同じディレクトリにあるとします。

open は第一引数をファイル名、第二引数を w とします。ファイル名は相対パスでも絶対パスでもかまいません。その後、例外処理(try)でファイルの中身を取得します。finally でファイルを閉じます。

プログラムを実行するとファイルが上書きされ、最初のデータが消えて apple になります。open の第二引数 w は上書きを意味します。

上書きでなく追記にしたいときは w を a とします。

file = open('data.txt', 'a')

try:
    file.write('apple')
finally:
    file.close()

プログラムを実行するたびに apple が追記されます。4回実行すれば

data.txt

appleappleappleapple

となります。

モード

open の第二引数は次の意味を持っています。

記号 意味
r 読み込み
w 書き込み(上書き)
a 書き込み(追記)
r+ 読み書き
w+ 読み書き
a+ 読み書き(追記)

w を指定すると、ファイルがなかった場合に新規作成します。書き込むファイルが存在するかチェックする必要はありません。