2011-01-04 2 views
0

Je veux verrouiller le fichier chaque fois que j'effectue une opération de lecture/écriture sur ce fichier. Aucun autre programme ou fonction ne peut accéder au fichier tant que je n'ai pas libéré le fichier. Comment faites-vous cela en Python?Verrouillage de fichier en Python?

Répondre

1

Vous pouvez essayer ceci:

http://docs.python.org/library/fcntl.html#fcntl.flock

ou ceci:

http://docs.python.org/library/fcntl.html#fcntl.lockf

Pour obtenir descripteur de fichier à partir d'un objet de type fichier, il vous suffit d'appeler la méthode fileno.

+0

Soyez prudent avec ceci. J'encouragerais l'utilisation d'un progiciel de plus haut niveau et bien débogué parce que, sans une réflexion approfondie, votre utilisation de ces fonctions de bas niveau est plus susceptible d'être imparfaite. Par exemple d'une condition de course subtile, regardez le commentaire de Thomas Guettler ici: http://code.activestate.com/recipes/65203-portalocker-cross-platform-posixnt-api-for-flock-s/ –

+0

Ceci est mind-bending, aussi: http://stackoverflow.com/questions/9907616/python-fcntl-does-not-lock-as-expected –

0

Google jusqu'à zc.lockfile ou portalocker.py. Les deux bibliothèques peuvent verrouiller un fichier de manière portable (systèmes windows et posix). J'utilise habituellement zc.lockfile.

+0

J'ai utilisé toute la bibliothèque mais aucune d'entre elles n'est pas pour mon but. En fait, je veux que chaque fois que je lis le fichier personne ne peut lire le fichier et aussi écrire. –

Questions connexes