ファイルの開閉
with open(ファイル名, mode, encoding="utf-8") as f:
※as はおそらく名前を付けることができる
複数のファイルを同時に開く
with (open(ファイルその1) as f1, open(ファイルその1) as f2):
・mode:入出力のモードを指定します。よく使うものを下記に挙げます。
・encoding:テキストモードの場合のエンコーディングを指定します。よく使うものを下記に挙げます。
主なモード
mode 目的 種類 補足
'r' ( デフォルト) 読み込み テキスト 'rt'と同じ
'rb' 読み込み バイナリー
'w' 書き込み テキスト 'wt'と同じ
'wb' 書き込み バイナリー
'a' 追記※ テキスト 'at'と同じ
'ab' 追記※ バイナリー
※ 追記では、既存ファイルの末尾に追加されます。ファイルが存在しないときは、作成して書き込みます。
主なエンコーディング
encoding 説明
None(デフォルト) 実行環境に依存します。
'utf-8' UTF-8を指定します。※
'shift_jis' Shift_JISを指定します。
複数行を書き込む場合
・print()と異なり、write()メソッドは末尾に改行を自動で付与しません。
・write()メソッドで複数行をファイルに書き込む場合、以下のように改行文字("\n")をつける必要があります。
with open("output/hello.txt", "w", encoding="utf-8") as f:
f.write("こんにちは\n")
f.write("お元気ですか\n")
リストの中身をファイルに書き込む場合はfor文を使う
animals = ["イヌ", "ネコ", "サル"]
# ファイルに書き込み
with open("output/animals.txt", "w", encoding = "utf-8") as f:
for animal in animals:
f.write(f"{animal}\n")
open()のmodeが"a"で、指定したファイルが存在しない場合、"w"のときと同様、ファイルが新規に作成されます。