ホームページ >バックエンド開発 >Python チュートリアル >同時変更を防ぐためにクロスプラットフォーム ファイル ロックを Python に実装するにはどうすればよいですか?

同時変更を防ぐためにクロスプラットフォーム ファイル ロックを Python に実装するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-02 16:13:19859ブラウズ

How Can I Implement Cross-Platform File Locking in Python to Prevent Concurrent Modification?

同時アクセスのために Python でファイルをロックする

Python では、複数のプロセスによる同時の変更試行からファイルを保護するには、効果的なファイル ロック メカニズムが必要です。ただし、クロスプラットフォーム ソリューションを見つけるのは困難であることがわかっています。

アップデート (2024 年 6 月)

最新の Python は、信頼性の高いクロスプラットフォーム ファイル ロック オプションをいくつか提供しています。

  • ファイルロック: 堅牢で広く使用されている
  • Portalocker: シンプルさで知られる、もう 1 つの人気のある選択肢です。
  • oslo.concurrency: ファイル アクセスを管理するための高度な同期ユーティリティを提供します。プロセス。

オリジナル回答

以前は、カスタム ソリューションが実装されて共有されていました (現在はアーカイブされています)。その仕組みは次のとおりです。

from filelock import FileLock

with FileLock("myfile.txt.lock"):
    # File operations with exclusive access
    print("Lock acquired.")

このソリューションでは、FileLock クラスを使用して、「myfile.txt.lock」という名前のロック ファイルを作成します。 with ブロックがアクティブである間、メインの Python スクリプトはファイルへの排他的アクセスを維持し、他のプロセスがファイルを変更するのを防ぎます。ブロックが終了すると自動的にロックが解除されます。

以上が同時変更を防ぐためにクロスプラットフォーム ファイル ロックを Python に実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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