後続の試行によるファイルの反復の問題
for ループを使用したファイルの反復は、データを 1 行ずつ処理するために Python で広く使用されています。ただし、同じファイルを複数回反復しようとすると、興味深い問題が発生します。
開いているファイルを 2 回目に反復しようとすると、ファイル全体の読み取りに成功したにもかかわらず、readlines() メソッドは出力を生成しません。最初の反復で。この問題を解決するには、ファイルを閉じて再度開くか、f.seek(0) を使用してファイル ポインターをリセットする必要があります。
この動作を理解するには、最初の readlines() 操作でファイルが読み取られることを認識する必要があります。ファイル全体をメモリに格納します。これは、2 回目の反復試行時に、ファイル ポインターが最後に到達したため、これ以上読み取るデータがないことを意味します。
このような制限を回避するには、ファイルのクローズを自動的に処理する with 構文の採用を検討してください。次の変更により、適切な反復が保証されます:
with open('baby1990.html', 'rU') as f: for line in f: print(line)
このアプローチにより、ブロックの完了時にファイルが自動的に閉じられるようになり、手動で閉じたり再度開いたりすることなく、複数回の反復を成功させることができます。
以上がPython ファイルの反復がその後の試行で失敗するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。