Bonjour,
ma question est dans le titre. L'idée est de ne pas modifier un fichier en même temps qu'une autre application.
Est-ce que l'ouverture en mode écriture du module os gère ceci ?
Bonjour,
ma question est dans le titre. L'idée est de ne pas modifier un fichier en même temps qu'une autre application.
Est-ce que l'ouverture en mode écriture du module os gère ceci ?
Bonjour rambc,
Et bien sous Linux je regarderai dans /proc/*/fd/
Je ne sais pas sous Windows ou Mac.
Bonne recherche.
Merci pour cette info.
Peux-tu préciser un peu ?
Effectuer une tentative de verrouillage (File lock).
Si échec c'est que le fichier est en cours d'utilisation
http://packages.python.org/lockfile/lockfile.html
Pour apprendre le Python suis ces tutoriels et cours Python : http://python.developpez.com/cours/
Le meilleur tutoriel Python : Apprendre à programmer avec Python 3 par Gérard Swinnen http://python.developpez.com/cours/apprendre-python3/
Ce qu'on trouve est plus important que ce qu'on cherche.
Maths de base pour les nuls (et les autres...)
Bonjour,
A vrais dire... Non.
Je me casse les dents sur le sujet depuis ta question. C'est bien plus compliqué et j'ai beau regarder du coté de /proc, lsof et autre cela ne fonctionne pas. De plus il n'y a rien de bien concret sur le sujet sur le web.
Mais comme le sujet m'intéresse je ne désespère pas de trouver.
Quiz de la solution de Zavonen, qui semble bonne : Les applications qui utilisent une 'image' du fichier. Exemple vi qui travaille sur un fichier temporaire dans /tmp. Je teste cela ce WE.
@+
Bonjour.
Pour une fois que je ne pose pas une question à la c---.
J'ai constaté cela aussi avec TextWrangler sous Mac qui accepte que le fichier soit modifié par une autre application, mais qui arrive aussi à savoir qu'une modification a été faite par une autre application.
Le module lockfile indiqué dans le post ci-dessus ne fonctionne pas sous Python 3...![]()
Salut,
De façon générale, c'est une "feature" qui repose sur des fonctionnalités de l'OS dont Python n'est que "client"...
Les seules "features" qu'on peut espérer retrouver dans les différents OS sont celles héritées de leur conformité POSIX - mais c'est plutôt "unixien", Windows l'est en partie modulo des ajouts.
Reste à réaliser une fonction is_open déclinée différemment sur chaque OS. Sur Google, chercher "mandatory file locking".
Ceci dit, on arrive inévitablement à réaliser un protocole obligeant A à ouvrir ses fichiers d'une certaine façon pour que B le sache - un protocole "simple" peut être réalisé via fcntl pour poser des "locks" - sur UNIX.
- W
Bonjour,
en fait dans le cadre d'un projet perso, l'utilisateur va travailler sur des fichiers TXT. Je voudrais donc savoir si un fichier ouvert dans mon appli. a été modifié depuis une autre afin de laisser le choix à l'utilisateur d'enregistrer la modification faite dans mon appli. ou bien celle faite ailleurs.
J'avais bien pensé à os.stat mais je pensais qu'il existait un outil tout prêt pour cela.
Oups, je me suis peut-être mal exprimé. En fait, je bosse sur une éditeur de documents scientifiques.
Bonjour,
Dans ce cas c'est toi qui gère l'éditeur, c'est cela ?
fcntl.lockf (est son équivalent win32api) ?
Bon code
Partager