Pythonでテキストファイルに書き込みを行う場合は、open、closeではなくwith文を使うと閉じ忘れのエラーがなくなるので便利です。
今回は、with文を使ってテキストファイルの書き込みをする方法について書こうと思います。
ファイル書き込み:with文の書式
# ファイルを書き込みモードで開く
with open(ファイル名, mode = "w") as f:
f.write(書きこむ値)
with as でファイルを開いて開いたときに行う処理を書けばOKなので簡単です。with文の場合は、close()を書かなくても処理が終わり次第自動でファイルを閉じてくれるので閉じ忘れがなく、便利ですし見た目もわかりやすいです。
open処理時のモード
openでファイルを開くとき、上記では”W”の書き込みモードにしましたが、他にも以下のモードがあります。
”r” | 読み込み用(デフォルト)・・・read |
“w” | 書き込み用・・・write |
“a” | 追加書き込み用・・・append |
“t” | テキストモード(デフォルト) |
“b” | バイナリーモード |
テキストファイルに書き込んでみる
実際にテキストファイルを開いて、Pythonのプログラム実行テストと書き込むプログラムをつくってみました。日本語の文字列を扱う場合は,encoding= “utf-8″を付与すれば文字化けはしなくなります。
text = "Pythonのプログラム実行テスト"
with open("test.txt", "w",encoding="utf_8") as f:
f.write(text)
実行結果:
テキストファイルに追記する
上記はopen時のモードを”a”に変更すると現在のファイルに追記される。
text = "Pythonのプログラム実行テスト"
with open("test.txt", "a",encoding="utf_8") as f:
f.write(text)
実行結果:
追記モードの場合は,書き込むファイルが存在していれば続きから追記され、ファイルが存在しなければ新規作成して書き込みを行います。
まとめ
- 新規ファイル書き込み時は
with open(ファイル名, mode = "w") as f:
- ファイルを追記したい場合は、
with open(ファイル名, mode = "a") as f:
- with openを使うとファイルクローズ忘れがなくソースも見やすくなる。
- openのモード”w”は常にファイルを新規作成して書き込む。
- openのモード”a”は書き込むファイルが存在した場合は、続きから追記する。
コメント