Python でファイルの読み込み
ここでは Python でファイルを読み込む方法についてご説明します。
ファイルを読み込みで開く
Python でファイルを開いて読み込むには、 open() 関数で r モードでファイルを開きます。
open() のデフォルトのモードが rt なので、指定しなくても大丈夫です。モードについて詳しくはこちらをご覧ください。 Python でファイルを開く時のモード
open() 関数がファイルオブジェクトを返すので、read() や readline() などのメソッドを使って読み込みます。
次の内容を text1.txt という名前で、ファイルを読み込むコードを書く py ファイルと同じフォルダーに保存しておいてください。
これはテストファイルです。
2行目です。
3行目です。
ファイルの内容を全部読み込む
Python でファイルの内容を全部読み込むには、read() メソッドを使います。
先ほど作った text1.txt ファイルの内容を全部読み込んで、出力するには次のようにします。
with open("test1.txt", "r") as f:
text = f.read()
print(text)
実行結果は次のようになり、ファイルの内容が全て出力されています。
これはテストファイルです。
2行目です。
3行目です。
with 文を使って open しておくと、コードブロックが終わってファイルがいらなくなったり、処理中に例外が発生したような時に、Python のインタプリタが自動的にファイルを close してくれます。
ファイルオブジェクトには with のコードブロックの中でしかアクセスできませんが、with のコードブロックの中で定義した変数にはその後でもアクセスすることができます。
ファイルから 1 行読み込む
Python でファイルから 1 行読み込むには、readline() メソッドを使います。
readline() メソッドは実行される度に、ファイルから 1 行ずつ読み込みます。
最後の行で改行文字がない場合を除き、読み込んだ文字に改行文字が含まれます。
with open("test1.txt", "r") as f:
print(f"line 1: {f.readline()}")
print(f"line 2: {f.readline()}")
実行結果は次のようになります。test1.txt ファイルの 1 行目と 2 行目が改行まで読み込まれ、print 関数も改行を追加するので、それぞれの行の後に改行が入っています。
line 1: これはテストファイルです。
line 2: 2行目です。
ファイルから 1 行ずつ全行読み込む
Python でファイルから 1 行ずつ読み込むには、次のように for でループします。
with open("test1.txt", "r") as f:
for line in f:
print(line)
実行結果は次のようになります。
これはテストファイルです。
2行目です。
3行目です。
readline() と同様に改行まで読み込まれますが、改行を削除したい時は、文字列の rstrip() メソッドで取り除くこともできます。
with open("test1.txt", "r") as f:
for line in f:
print(line.rstrip())
実行結果は次の通りです。
これはテストファイルです。
2行目です。
3行目です。
ファイルから全行をリストに読み込む
ファイルから全行をリストに読み込んでしまうことも可能です。
ファイルオブジェクトの readlines() メソッドか、list(f) のように list のコンストラクタにファイルオブジェクト渡してリストを生成します。
with open("test1.txt", "r") as f:
lines = f.readlines() # lines = list(f)
for line in lines:
print(line)
実行結果は次の通りです。
これはテストファイルです。
2行目です。
3行目です。
ファイルの内容を読み込んでしまっておいて、後でいろいろ処理したい時に便利ですね。
以上、Python でファイルを読み込む方法についてご説明しました。