Pythonでテキストファイルを1行ずつ読み込む方法を徹底解説
Pythonでテキストファイルを扱う際、read()関数を使うとファイル全体が一度に読み込まれてしまいます。ファイルの内容を行単位で処理したい場合は、readlines()関数やファイルオブジェクトのイテレーションを活用するのが便利です。本記事では、代表的な3つの方法をコード例とともに紹介します。
方法1:readlines()関数を使う
readlines()関数は、ファイルの各行を要素とするリストを返します。forループと組み合わせることで、1行ずつ処理できます。
f = open('my_file.txt', 'r')
for line in f.readlines():
print(line)
f.close()方法2:with文を使う(推奨)
with open(...)ステートメントを使うと、処理が終了した時点でファイルが自動的にクローズされるため、close()の呼び忘れによるリソースリークを防げます。実務ではこの書き方が最も推奨されます。
with open('my_file.txt', 'r') as f:
for line in f.readlines():
print(line)方法3:ファイルオブジェクトを直接イテレートする
実は、ファイルオブジェクトはそのままforループで反復処理できます。readlines()のように全行を一括してメモリに読み込まないため、巨大なファイルを扱う場合にもメモリ効率が良いのが特徴です。
with open('my_file.txt', 'r') as f:
for line in f:
print(line)押さえておきたいポイント
- 改行の扱い: 読み込んだ行には行末の改行文字(
\n)が含まれるため、出力時に余分な空行が気になる場合はprint(line, end='')やline.strip()を使いましょう。 - ファイルモード: 単に読み込むだけであれば
'r'(読み取り専用)で十分です。'r+'は読み書き両用モードなので、書き込みも行う場合に使用します。 - エンコーディング: 日本語を含むファイルを扱う際は、
open('my_file.txt', 'r', encoding='utf-8')のようにエンコーディングを明示すると安全です。
状況に応じて最適な方法を選ぶことで、Pythonでのテキスト処理をより効率的かつ堅牢に行えます。特に大きなファイルを扱う場合は「方法3」の直接イテレーションがおすすめです。
-
Pythonでファイルを読み取り専用で開く方法をわかりやすく解説
Pythonで読み取りモード(r)を使ってファイルを開く基本Pythonでファイルを読み取り専用(リードモード)として開くには、open()関数の第2引数に r を指定します。なお、「r」はデフォルトのモードでもあるため、実際には省略して書くことも可能です。f = open(my_file.txt, r) file_content = f.read() f.close()上記のコードでは、my_file.txt を読み取りモードで開き、read()メソッドでファイルの内容をすべて読み込んで、変数 file_content に格納しています。処理が終わったら close() メソッドを呼び出し、
-
Pythonでテキストファイルをリストや配列として読み込む方法
Pythonでテキストファイルを読み込んでデータとして扱う方法はいくつかあります。ここでは、代表的な手法をサンプルコード付きでわかりやすく解説します。 テキストファイル全体を一度に読み込む方法 最も基本的なのは、組み込み関数 open() を使う方法です。以下のコードでは、my_file.txt を読み取りモードで開き、ファイルの内容全体を変数 my_file_data に格納した後、ファイルを閉じています。 f = open(my_file.txt, r+) my_file_data = f.read() f.close() read() 関数は、ファイルの内容をすべて一括で読み取りま