Python で「with open」を使用して複数のファイルを同時に開くことはできますか?

Patricia Arquette
リリース: 2024-11-17 13:26:02
オリジナル
374 人が閲覧しました

Can I Use

Python で「with open」を使用して複数のファイルを同時に開く

Python では、with open ステートメントを使用して、構造化コンテキスト内でファイル操作を処理するエレガントな方法が提供されます。これにより、ファイルを明示的に開いたり閉じたりする必要がなくなり、ブロックの終了時にリソースが適切に解放されるようになります。

しかし、複数のファイルを同時に変更またはアクセスする必要がある場合はどうすればよいでしょうか?次の質問では、このシナリオについて説明します。

複数のファイルを同時に変更したいのですが、すべてのファイルに正常に書き込むことができる場合に限ります。 with ステートメント内で複数の open 呼び出しを結合できますか?

Python バージョン 2.7 および 3.1 以降では、答えははっきりと「はい」です。

with open('a', 'w') as a, open('b', 'w') as b:
    do_something()
ログイン後にコピー

この簡潔な構文により、複数のファイルを開くことができます同じコンテキスト マネージャー内で、すべてのコンテキスト マネージャーを同時に操作できるようになります。

ダイナミック コンテキスト マネージャーを開く必要がある場合ファイルの数に応じて、Python 3.3 ではさらに汎用性の高いソリューション contextlib.ExitStack が導入されています。

with ExitStack() as stack:
    files = [stack.enter_context(open(fname)) for fname in filenames]
    # Do something with "files"
ログイン後にコピー

このアプローチにより柔軟性が高まり、単一のコンテキスト ブロック内でファイルのコレクションを動的に開いて管理できるようになります。

また、ファイルを順次処理することが要件の場合、より簡単なアプローチは、ファイルを反復処理して各ループ内でファイルを開くことです。 iteration:

for fname in filenames:
    with open(fname) as f:
        # Process f
ログイン後にコピー

この順次アプローチにはシンプルさという利点があり、多数のファイルを処理する場合により適している可能性があります。

以上がPython で「with open」を使用して複数のファイルを同時に開くことはできますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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