Python: テキストファイル全体を読み込む read()
Pythonでテキストファイルを一括で読み込む場合は、 read()メソッドを使います。 read()メソッドの引数に何も指定しなければ全体を読み込みますが、 引数を指定して読み込む文字数を指定することもできます。
with文による読み込み
まずは with文を使ったファイルの読み込み方法を紹介します。 with文を使う場合、 ファイルのクローズはPython側で自動的に行ってくれます。 クローズのタイミングはwithブロックを抜ける時です。 ですからオープン関数だけを記述して、 クローズメソッドを記述する必要はありません。
# ファイルパス file_path = "a.txt" # ファイルオープン with open(file_path, "r", encoding="utf-8") as f: # ファイル全体を読み込む s = f.read() print(s)
- "r" : テキストモードで読み込み用としてファイルをオープン
- encoding="utf-8" : 文字コードにUTF-8を指定
open()、close()による読み込み
with文を使わない場合は、 最後にファイルのクローズ処理 close()が必要なので忘れないようにしてください。
# ファイルパス file_path = "a.txt" # ファイルオープン f = open(file_path, "r", encoding="utf-8") # 読み込み s = f.read() # ファイルクローズ f.close()
読み込む文字数を指定
read()メソッドの引数に読み込む文字数を指定することもできます。
次の内容のファイル「a.txt」を文字数を指定して読み込みます。
a.txt
あいうえお かきくけこ さしすせそ
read()の引数に「5」を指定してみます。
file_path = "a.txt" with open(file_path, "r", encoding="utf-8") as f: s = f.read(5) print(s, end="") # 実行結果 あいうえお
「あいうえお」と5文字分読み込みました。
次は引数に「10」を指定してみます。
file_path = "a.txt" with open(file_path, "r", encoding="utf-8") as f: s = f.read(10) print(s, end="") # 実行結果 あいうえお かきくけ
改行コードが1文字分あるため「かきくけ」まで読み込みます。 文字数を指定する場合は改行コードも考慮した上で指定してください。