ホームページ >バックエンド開発 >Python チュートリアル >Python ファイルを 2 回反復すると予期しない結果が生じるのはなぜですか?

Python ファイルを 2 回反復すると予期しない結果が生じるのはなぜですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-06 04:19:09743ブラウズ

Why Does Iterating Over a Python File Twice Produce Unexpected Results?

ファイルを 2 回反復する: Python のファイル反復メカニズムを理解する

Python では、ファイルを反復するには、ループを使用して 1 行ずつ読み取る必要があります。構築する。ただし、同じファイルを再度反復しようとすると、多くの場合、出力なしという予期しない結果が得られます。

この動作は、Python の基礎となるファイル反復メカニズムによるものです。最初のループを実行すると:

for line in f.readlines():
    print(line)

ファイルは最後まで読み取られます。これは、テープ プレーヤーがテープの最後まで読み込むことに似ています。最後に到達すると、それ以上読み取るデータはありません。

ファイルを再度繰り返すには、ファイル ポインタを先頭にリセットする必要があります。これは 2 つの方法で実現できます。

1. f.seek(0) の使用:

f.seek(0)
for line in f.readlines():
    print(line)

f.seek(0) を呼び出すと、ファイル ポインタの位置がファイルの先頭に再配置され、ファイルを再度読み取ることができるようになります。

2.ファイルを閉じて再度開く:

f.close()
f = open('baby1990.html', 'rU')
for line in f.readlines():
    print(line)

ファイルを閉じて再度開くと、ファイル ポインタが自動的に先頭にリセットされます。

代替: ブロックを使用した使用:

with ステートメントは、より便利で安全な方法を提供します。 files:

with open('baby1990.html', 'rU') as f:
    for line in f:
        print(line)

with ブロック内では、例外やループに関係なく、ブロックが終了するとファイルは自動的に閉じられます。これにより、手動でファイルを処理する必要がなくなります。

以上がPython ファイルを 2 回反復すると予期しない結果が生じるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。