ファイルの開閉

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"のときと同様、ファイルが新規に作成されます。