IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Eviter l'accès simultané à un fichier


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 49
    Par défaut Eviter l'accès simultané à un fichier
    Bonjour,

    J'ai écrit un code qui me permet de lire un fichier log de filezilla server et de traiter mes infos ensuite.
    Je voudrais éviter que mon programme lise ce .log lorsqu'un fichier est en cours de réception par filezilla server et donc que ce log est en train d'être écrit.
    Je suppose que mon programme pourrait planter ou donner des erreurs.

    Y a-t-il un moyen de détecter cette situation et de l'éviter et comment ?
    Merci d'avance de votre aide

  2. #2
    Membre émérite Avatar de pop_up
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 877
    Par défaut
    salut,

    pour gérer les accés concurents, il y a les sémaphores. En gros le principe c'est un peut comme si tu configure une variable globale à zéro, et avant de lire dans ton log tu la passe à 1. pour garantir l'exclusion tu rajoute une condition pour que l'on accède à ce fichier que si la variable est à zéro.

    j'espère que ça t'aide. (Sinon cf google)


  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 49
    Par défaut
    Merci Pop_up.
    Je connaissais les threads mais pas les sémaphores.
    Cependant, d'après ce que je comprends, ça fonctionne à l'intérieur d'un programme python. Exact ?
    Ce qui me gêne, c'est que je voudrais que mon programme n'accède au log de filezilla server que lorsqu'il est libre.
    Si quelqu'un a d'autres bonnes idées...

  4. #4
    Expert confirmé

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Par défaut
    Citation Envoyé par bestdomdom
    Y a-t-il un moyen de détecter cette situation et de l'éviter et comment ?
    Merci d'avance de votre aide
    Attends que le fichier ne change pas de taille pendant 10s

    Je ne sais pas si il y a moyen de detecter qu'un autre processus utilise ce fichier. Je suppose que c'est possible, mais ça doit dépendre du type de lock mis en place par le processus sur le fichier.... Autant dire que il vaut mieux pas utiliser ça. A mon avis, la solution au dessus est largement suffisante.

    Les sémaphores, ça ne marche que si tes process qui accedent à ton fichier sont tout deux des processus Python, ce qui n'est pas ton cas.

  5. #5
    Membre éprouvé Avatar de anthyme
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 559
    Par défaut
    en java je serai passé par "synchronised" mais je sais pas si il y a un équivalant python ...

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 49
    Par défaut
    Merci à tous.
    Visiblement, il y a des modules de gestion des locks (par exemple msvcrt pour windows) qui pourraient sans doute fonctionner.
    Cependant, ayant effectué quelques tests, j'ai l'impression que les accès concurrents en écriture d'une part et en lecture d'autre part sont possibles sans erreur.
    Sinon, je testerai les modules ou la méthode DenisC...
    Merci encore

  7. #7
    Membre Expert Avatar de pacificator
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 074
    Par défaut
    Effectivement, en python tu peux avoir des accès simultanés en lecture et 1 accès en ecriture sur le même fichier.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. accès simultanément sur un fichier via ssh
    Par MSM_007 dans le forum Linux
    Réponses: 0
    Dernier message: 04/05/2010, 11h18
  2. Accès simultané a un même fichier
    Par Slyders dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 11/08/2009, 18h04
  3. Accès simultané à un fichier
    Par ToraTora dans le forum C++
    Réponses: 7
    Dernier message: 04/07/2008, 13h18
  4. Accès simultané au même fichier
    Par Oprichnik dans le forum Langage
    Réponses: 8
    Dernier message: 16/09/2006, 13h17
  5. Accès simultané au même fichier pour modification
    Par Dominique_78 dans le forum Langage
    Réponses: 5
    Dernier message: 21/02/2006, 18h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo