ホームページ  >  記事  >  バックエンド開発  >  Python での WITH ステートメントの用途は何ですか?

Python での WITH ステートメントの用途は何ですか?

王林
王林転載
2023-08-18 22:53:141810ブラウズ

Python での WITH ステートメントの用途は何ですか?

この記事では、Python の「with」ステートメントとその使用法について学びます。

  • Python では、with ステートメントは、try-catch ブロックを簡潔な方法で置き換えます。

  • さらに重要なのは、処理後すぐにリソースが確実に閉じられることです。

  • with ステートメントを使用してファイルの読み取りまたは書き込みを行うのが一般的な使用法です。

  • コンテキスト マネージャーは、with ステートメントをサポートする関数またはクラスです。コンテキスト マネージャーを使用すると、必要なときにリソースを開いたり閉じたりできます。

  • たとえば、open() 関数はコンテキスト マネージャーです。 with ステートメントを使用して open() 関数を呼び出すと、ファイルの処理後にファイルは自動的に閉じられます。

「with」ステートメントを使用してファイルを開いて読み取る

アルゴリズム (ステップ)

以下は、必要なタスクを実行するためのアルゴリズム/手順です:

  • open() 関数 (ファイルを開いて結果としてファイル オブジェクトを返す) を使用して、テキスト ファイルを読み取り専用モードで開きます (「# here」を渡すことで、ファイル名とモードを引数として指定します) ##r" は読み取り専用モードを示します)。

  • リーリー
  • readlines() 関数を使用して、指定されたテキスト ファイルの行のリストを取得します。

  • リーリー
  • for ループを使用して、指定されたテキスト ファイルの各行を繰り返し処理します。

  • テキスト ファイルの対応する行を出力します。

Example

の中国語訳は次のとおりです:

Example

リーリー ###出力### リーリー

キーワード `with` を使用すると、ファイルを読み取りモードで開くだけでなく、開いたファイルにエイリアスを割り当てることもできます。

try-catch ブロックの代わりに「with」ステートメントを使用します

Python では、try-catch エラー処理を使用してファイルを開いたり書き込んだりできます。

内部では、

with

ステートメントは次の try-catch ブロックを置き換えます

Example の中国語訳は次のとおりです:

Example

リーリー ###出力### リーリー

このプログラムは、ファイル

tutorialsFile.txt

を開きます。そのようなファイルが存在しない場合は、プログラムによって作成されます。次に、コードは「

HellotutorialsPoint python

」をファイルに書き込み、ファイルを閉じます。

この方法でも問題ありません。ただし、このタスクは with ステートメントを使用するとよりエレガントに実行できます。

次に、

with ステートメント − を使用して前の例を再作成しましょう。 リーリー

with ステートメントは使用後のファイルのクローズを処理できるため、コードが簡素化されます。このため、一般的に Python でファイルを開くには with ステートメントを使用することが推奨されます。

Python "with" ステートメントとコンテキスト マネージャー

ファイルを処理するとき、with ステートメントは open() 関数にのみ適用されると考えるかもしれません。しかし、そうではありません。 with ステートメントをサポートするクラスとオブジェクトも作成できます。

コンテキスト マネージャーは、

with

ステートメントをサポートするクラスまたは関数です。

プロジェクトにリソース管理を追加したい場合は、コンテキスト マネージャーを使用できます。

コンテキスト マネージャー

とみなされるには、クラスは次の 2 つのメソッド - を実装する必要があります。 ###__入力__()### ###__出口__()###

これらのメソッドを実装した後、クラスのオブジェクトに対して with ステートメントを使用できます。

with ステートメントが呼び出されると、__enter__() メソッドが呼び出されます。

  • with ブロックのスコープを終了すると、__exit__() メソッドが呼び出されます。
  • ファイル書き込み用のコンテキスト マネージャーを作成する

  • このクラスの機能は open() メソッドと同じです
  • リーリー

    上記プログラムの使い方

FileWriter(filename) を使用すると、新しい FileWriter オブジェクトが作成され、__enter__() が呼び出されます。

__enter__() メソッドは、必要なリソースを初期化するために使用されます。この場合、テキスト ファイルが開きます。また、リソースの記述子、つまり開いているファイルも返す必要があります。

    as file は、ファイルを file という名前の変数に割り当てます。
  • 最後に、コロンの後の with ブロック内に、取得したリソースを使用して実行されるコードを配置します。
  • このコードの実行が完了すると、__exit__() メソッドが自動的に呼び出されます。この場合、ファイルは閉じられます。
  • コンテキスト マネージャー メソッドを作成するにはどうすればよいですか?
  • 前に書いたコンテキスト マネージャーはクラスですが、open() 関数に似たコンテキスト マネージャー メソッドを作成したい場合はどうすればよいでしょうか? Python では、コンテキスト マネージャー メソッドを作成することもできます。

  • contextlib

    モジュールを使用してメソッドをコンテキスト マネージャーに変換します。

  • Example
の中国語訳は次のとおりです:

Example

リーリー

exampleFile.txt

の翻訳は次のとおりです:

exampleFile.txt リーリー ここでは、 with キーワードを使用して新しい関数を作成し、名前を付けます。この関数を呼び出すと、指定されたファイルを書き込みモードで開こうとし、結果を返します。エラーが発生した場合、ファイルは閉じられます。

###結論は###

この記事では、例とともに with ステートメントの使用方法を学びました。

以上がPython での WITH ステートメントの用途は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。