Maison >développement back-end >Tutoriel Python >Comment puis-je implémenter le verrouillage de fichiers multiplateforme en Python pour empêcher les modifications simultanées ?

Comment puis-je implémenter le verrouillage de fichiers multiplateforme en Python pour empêcher les modifications simultanées ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-02 16:13:19859parcourir

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

Verrouillage d'un fichier en Python pour un accès simultané

En Python, la protection des fichiers contre les tentatives de modification simultanées par plusieurs processus nécessite un mécanisme de verrouillage de fichier efficace . Cependant, trouver une solution multiplateforme s'est avéré difficile.

Mise à jour (juin 2024)

Python moderne offre plusieurs options fiables de verrouillage de fichiers multiplateformes :

  • filelock : Un outil robuste et largement utilisé bibliothèque.
  • Portalocker : autre choix populaire, connu pour sa simplicité.
  • oslo.concurrency : fournit des utilitaires de synchronisation avancés pour gérer l'accès aux fichiers sur processus.

Original Réponse

Auparavant, une solution personnalisée était implémentée et partagée (maintenant archivée). Voici comment cela fonctionne :

from filelock import FileLock

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

Cette solution utilise la classe FileLock pour créer un fichier de verrouillage nommé "myfile.txt.lock". Pendant que le bloc with est actif, le script Python principal conserve un accès exclusif au fichier, empêchant d'autres processus de le modifier. À la fin du blocage, le verrou est automatiquement libéré.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn