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 :

accès "simultané" de plusieurs programmes à un fichier .CSV


Sujet :

Python

  1. #1
    Membre confirmé
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Juin 2014
    Messages
    219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable de compte

    Informations forums :
    Inscription : Juin 2014
    Messages : 219
    Par défaut accès "simultané" de plusieurs programmes à un fichier .CSV
    Bonjour.

    Je voudrais savoir si je peux accéder (en lecture seule) à un fichier qui est utilisé par un autre programme ?

    J'ai en fait un programme (je ne sais en quel langage est ce programme et n'ai aucun contrôle dessus) d'un système d'acquisition de données qui vient écrire dans un fichier .CSV.

    Je souhaiterais venir lire certaines valeurs enregistrées, pour par exemple en extraire la valeur max, grâce à un script python, et ce, pendant que l'acquisition se déroule.

    Mon interrogation est : Que se passe t-il si les 2 programmes tentent d'accéder en même temps au même fichier en question ? Je ne peux me permettre de perdre des données à enregistrer ou provoquer une corruption du fichier en question !

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 677
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 677
    Par défaut
    Citation Envoyé par hary66 Voir le message
    Mon interrogation est : Que se passe t-il si les 2 programmes tentent d'accéder en même temps au même fichier en question ? Je ne peux me permettre de perdre des données à enregistrer ou provoquer une corruption du fichier en question !
    Ça dépend du file system et du mode d'ouverture du fichier qui est écrit: Python ne peut que subir et faire avec.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre éclairé Avatar de nekcorp
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2006
    Messages : 592
    Par défaut
    Citation Envoyé par hary66 Voir le message
    Bonjour.
    Mon interrogation est : Que se passe t-il si les 2 programmes tentent d'accéder en même temps au même fichier en question ? Je ne peux me permettre de perdre des données à enregistrer ou provoquer une corruption du fichier en question !
    Salut,

    Alors je rencontre ce genre de situation tout les jours.

    Je lance des calculs sur un serveur Unix, le programme que j'utilise va écrire dans un fichier de sortie tout un tas d'informations et comme c'est assez lourd et pour être certains que certaines étapes ce sont passées avec succès j'édite ce fameux fichier .out pour éventuellement killer le process si quelque chose se passe mal (les traitements de fichiers peuvent durer des heures donc inutile de continuer à laisser tourner si je sais qu'au final les résultats seront faux).

    Du coup quand le programme écrit de nouveau dans le fichier bien que celui ci soit ouvert dans mon éditeur, il se met à jour automatiquement et je peux continuer à le lire.

    Maintenant je n'ai jamais essayé de lire ce dit fichier avec un script python pendant que le programme de calcul continu d'écrire dans le fichier .out.

    Je vais tester et vous faire un retour si cela peut vous aider pour la suite.

  4. #4
    Membre confirmé
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Juin 2014
    Messages
    219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable de compte

    Informations forums :
    Inscription : Juin 2014
    Messages : 219
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Python ne peut que subir et faire avec.

    - W
    Dans la mesure où c'est l’intégrité des datas enregistrées qui prime, cela veut dire qu'au pire cela entrainera un dysfonctionnement de mon script python.

    Ce n'est donc pas trop grave !

    Je pensais surtout à une situation où le logiciel d'acquisition ouvre le fichier, y écrit une série de datas, puis referme le fichier pendant un certain temps avant de réouvrir pour de nouveau y écrire.
    Si le script python ouvre ce fichier pour y lire ce dont il a besoin pendant que le fichier à été fermé par le logiciel d'acquisition, le script python ne plante pas mais pourrait peut être faire planter l'écriture de datas venant du logiciel d'acquisition si celui ci a besoin d'y accéder au même moment.

    Je ne sais pas si je suis clair !

  5. #5
    Membre éclairé Avatar de nekcorp
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2006
    Messages : 592
    Par défaut
    Citation Envoyé par hary66 Voir le message
    Dans la mesure où c'est l’intégrité des datas enregistrées qui prime, cela veut dire qu'au pire cela entrainera un dysfonctionnement de mon script python.

    Ce n'est donc pas trop grave !

    Je pensais surtout à une situation où le logiciel d'acquisition ouvre le fichier, y écrit une série de datas, puis referme le fichier pendant un certain temps avant de réouvrir pour de nouveau y écrire.
    Si le script python ouvre ce fichier pour y lire ce dont il a besoin pendant que le fichier à été fermé par le logiciel d'acquisition, le script python ne plante pas mais pourrait peut être faire planter l'écriture de datas venant du logiciel d'acquisition si celui ci a besoin d'y accéder au même moment.

    Je ne sais pas si je suis clair !
    En fait wiztricks a raison tout dépend du system d'ouverture du fichier, et ça pour le savoir tu peux que faire des tests.

    le script python ne plante pas mais pourrait peut être faire planter l'écriture de datas
    Si le script arrive à ouvrir le fichier il le fera avec le type d'ouverture que vous aurez définit dans votre script python, donc si cette édition ne correspond pas à celle qui permet au système d'acquisition d'écrire dans le fichier alors il se peut que l'acquisition se passe mal. Mais pour le savoir il faut faire des tests.

    Une solution serait de faire une copie temporaire de ce fichier et de traiter les données dans ce fichier temporaire.

  6. #6
    Membre confirmé
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Juin 2014
    Messages
    219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable de compte

    Informations forums :
    Inscription : Juin 2014
    Messages : 219
    Par défaut
    Citation Envoyé par nekcorp Voir le message

    Une solution serait de faire une copie temporaire de ce fichier et de traiter les données dans ce fichier temporaire.
    C'est en effet l'alternative que j'ai entreprise pour le moment.
    Bien que l'on pourrait aussi soupçonner un effet similaire au moment ou l'on fait une copie du fichier ?

  7. #7
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 677
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 677
    Par défaut
    Salut,

    Citation Envoyé par nekcorp Voir le message
    En fait wiztricks a raison tout dépend du system d'ouverture du fichier, et ça pour le savoir tu peux que faire des tests.
    Si on teste et que çà fonctionne, est-ce le résultat sera fiable ou est-ce qu'on a eu de la chance?
    Il faut commencer par lire la documentation, comprendre à quelle condition le file system peut rendre ce genre de service puis on va tester que le code qu'on a écrit utilise proprement ce service là.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  8. #8
    Membre éclairé Avatar de nekcorp
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2006
    Messages : 592
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Salut,
    Si on teste et que çà fonctionne, est-ce le résultat sera fiable ou est-ce qu'on a eu de la chance?
    - W
    Tu l'a pourtant bien dit :

    Python ne peut que subir et faire avec.
    Donc si le test est concluant c'est que le mode d'ouverture du fichier est compatible avec ce que fait le script.

    Qu'est ce que la doc va nous apporter quant à l'ouverture d'un fichier fournit par un logiciel tierce ?

  9. #9
    Membre éclairé Avatar de nekcorp
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2006
    Messages : 592
    Par défaut
    Citation Envoyé par hary66 Voir le message
    C'est en effet l'alternative que j'ai entreprise pour le moment.
    Bien que l'on pourrait aussi soupçonner un effet similaire au moment ou l'on fait une copie du fichier ?
    Oui effectivement si vous copiez le fichier au moment où le système d'acquisition est entrain d'écrire, vous risquez d'avoir un soucis.

  10. #10
    Membre confirmé
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Juin 2014
    Messages
    219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable de compte

    Informations forums :
    Inscription : Juin 2014
    Messages : 219
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Salut,



    Si on teste et que çà fonctionne, est-ce le résultat sera fiable ou est-ce qu'on a eu de la chance?
    Oui en effet ! Si on teste au moment où le logiciel d'acquisition n'accède pas au fichier, ça passera inaperçu !

    Citation Envoyé par wiztricks Voir le message
    Il faut commencer par lire la documentation, comprendre à quelle condition le file system peut rendre ce genre de service puis on va tester que le code qu'on a écrit utilise proprement ce service là.

    - W
    Quelle documentation dans ce contexte ? Celle du système d'acquisition je suppose ? Mais les fournisseurs de ce type de matériel ne sont pas toujours très explicite sur le sujet !

  11. #11
    Membre confirmé
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Juin 2014
    Messages
    219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable de compte

    Informations forums :
    Inscription : Juin 2014
    Messages : 219
    Par défaut
    Je pense que je suis "protégé".
    Quand je tente d'ouvrir le fichier de datas créé par le logiciel d'acquisition pendant l'acquisition, j'obtiens ceci :

    Nom : Capture_14_06_17.PNG
Affichages : 516
Taille : 9,8 Ko

    Par contre, et c'est ce que j'avais commencé par faire, il me laisse la possibilité de faire des copies.

    Je vais donc continuer à faire comme ça.

    Utilisant le module python CSV, il n'est pas nécessaire de stipuler à la fonction open(fichier) le type d'ouverture(r, w ou autre). Dans le doute, je vais m'abstenir d'agir directement sur mon fichier data original.

  12. #12
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 677
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 677
    Par défaut
    Citation Envoyé par hary66 Voir le message
    Quelle documentation dans ce contexte ? Celle du système d'acquisition je suppose ? Mais les fournisseurs de ce type de matériel ne sont pas toujours très explicite sur le sujet !
    Ah ben, s'ils vendent du matériel pour les professionnels, ils ont en général un support qui répond plus ou moins vite et/ou des forums utilisateurs qui partagent leurs expériences...

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  13. #13
    Membre éclairé Avatar de nekcorp
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2006
    Messages : 592
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Ah ben, s'ils vendent du matériel pour les professionnels, ils ont en général un support qui répond plus ou moins vite et/ou des forums utilisateurs qui partagent leurs expériences...

    - W
    J'avais pas compris que tu parlais de la doc du matériel, je pensais que tu parlais de la doc python pour la fonction open

    Autant pour moi.

  14. #14
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 677
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 677
    Par défaut
    Citation Envoyé par nekcorp Voir le message
    Donc si le test est concluant c'est que le mode d'ouverture du fichier est compatible avec ce que fait le script.

    Qu'est ce que la doc va nous apporter quant à l'ouverture d'un fichier fournit par un logiciel tierce ?
    Le logiciel ouvrir le fichier que lorsqu'il a besoin d'écrire et planter (ou jeter les données) s'il ne peut pas écrire lorsqu'il a besoin. Le logiciel peut aussi ouvrir le fichier en mode 'a' sur un file system qui permettra des accès en lecture depuis d'autres process. Si on fait fonctionner çà sur un file system qui n'a pas cette fonctionnalité, çà plantera (ou on perdra des données).

    Donc on ne peut pas se baser sur des tests pour assurer qu'une construction supporte ce pourquoi elle n'a pas été faite. Dit autrement, si le machin n'a pas été construit pour, un test apportera une information fiable s'il plante mais s'il fonctionne, on ne pourra pas conclure. Inversement, si cela a été construit pour et que çà plante, c'est qu'il y a un bug à corriger.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. Traitement simultané de lignes dans un fichier csv
    Par guez16 dans le forum Développement de jobs
    Réponses: 2
    Dernier message: 29/08/2011, 14h32
  2. Eviter l'accès simultané à un fichier
    Par bestdomdom dans le forum Général Python
    Réponses: 6
    Dernier message: 04/09/2006, 12h22
  3. Fichier CSV à partir un programme C
    Par Premium dans le forum C
    Réponses: 3
    Dernier message: 25/05/2006, 23h53
  4. Update de plusieurs tables, import fichier csv sql loader
    Par fusuke dans le forum SQL*Loader
    Réponses: 2
    Dernier message: 18/05/2006, 15h08
  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