資格スワイプ
入出力・エラーと例外・クラス・標準ライブラリ・対話環境(7,8,9,10,14章)

非常にサイズの大きいテキストファイルを1行ずつ処理したい場合、メモリ効率の観点から最も適切な方法はどれか。

  • ✓for line in f: のようにファイルオブジェクトを直接イテレートして1行ずつ処理する
  • Bf.readlines()で全行をリスト化してからfor文で処理する
  • Cf.read()でファイル全体を文字列として読み込み、split('\n')で分割する
  • Dwhile True: とf.read(1)を組み合わせて1文字ずつ読み込む

解説

ファイルオブジェクトを直接forループでイテレートすると、内部で1行ずつ読み込みながら処理するため、ファイル全体を一度にメモリへ展開する必要がなく効率的である。

根拠7章 入出力(ファイルオブジェクトの反復処理)

← 前の問題次の問題 →
スワイプでまとめて流す