「with」ステートメントを使用して複数のファイルを同時に開くにはどうすればよいですか?

Linda Hamilton
リリース: 2024-10-30 04:40:28
オリジナル
994 人が閲覧しました

How to Open Multiple Files Simultaneously with the 'with' Statement?

「with」ステートメントを使用して複数のファイルを開く

Python でファイル I/O を操作する場合、「with open()」ステートメントは、ファイルを自動的に開閉する便利な方法を提供します。ただし、複数のファイルを同時に開く必要がある場合、従来のアプローチでは制限が発生する可能性があります。

次のコードでは、読み取り対象の入力ファイル 'oldfile' と 2 つのファイルを操作します。書き込む出力ファイル 'newfile'。

<code class="python">def filter(txt, oldfile, newfile):
    with open(oldfile, 'r', encoding='utf-8') as infile:
        with open(newfile, 'w') as outfile:
            # ...</code>
ログイン後にコピー

ご覧のとおり、ファイルを順番に開くには 'with' ステートメントをネストする必要があります。いずれかのファイルの操作中に例外が発生すると、問題が発生する可能性があります。

幸いなことに、Python には、単一の 'with' ステートメント内で複数の 'open()' ステートメントを使用するという、より効率的な解決策が用意されています。これは、ファイルをカンマで区切ることによって実現されます:

<code class="python">def filter(txt, oldfile, newfile):
    with open(newfile, 'w') as outfile, open(oldfile, 'r', encoding='utf-8') as infile:
        # ...</code>
ログイン後にコピー

この構文を使用すると、両方のファイルを同時に開き、それぞれ 'outfile' および 'infile' としてアクセスできます。さらに、「with」ブロックが終了するとファイルは自動的に閉じられ、適切なリソース管理が保証されます。

このアプローチにより、コードが簡素化され、ネストされた「with」ステートメントによって引き起こされる潜在的な問題が排除されます。これは、Python バージョン 2.7 および 3.1 以降でサポートされています。古い Python バージョンの場合は、contextlib.nested を使用するか、以前と同様に 'with' ステートメントをネストし続けることができます。

以上が「with」ステートメントを使用して複数のファイルを同時に開くにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート