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 :

Modifier un fichier python depuis un autre programme [Python 3.X]


Sujet :

Python

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 26
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2019
    Messages : 7
    Points : 9
    Points
    9
    Par défaut Modifier un fichier python depuis un autre programme
    Bonjour, je vous contact car ayant du mal à formuler mon problème je n'arrive pas à trouver de solution sur internet.

    Donc voila le problème : je travaille sur des Class que j'ai créée sur Python, ces class ont des attributs qui sont vides ou même remplies.

    Je dois mettre en place une interface graphique avec tkinter (cette partie c'est bon j'avais posté un message déjà dessus et c'est réglé) qui va ouvrir mes class et modifier/ajouter les données que j'aurais saisies dans mon interface graphique.

    Donc je cherche à modifier un programme python depuis un autre programme.
    Je ne peut pas mettre mes class dans le même fichier (car je les utilise dans un autre logiciel par la suite qui nécessite qu'elles soient séparés), ce qui me fait 55 fichiers à modifier selon les données que l'on va saisir dans l'interface graphique. Les 55 fichiers ne seront jamais modifier simultanément maximum 5 fichiers je dirai.

    En naviguant sur les forums impossibles de savoir si c'est faisable, le problème étant ambiguë à expliquer.
    Je sais que l'on peut modifier des fichiers .txt depuis python et comment ça fonctionne,mais du coup ma question en espérant qu'elle soit claire c'est peut-on modifier un .py dans un fichier python séparé ?

    Merci

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    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 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Salut,

    Citation Envoyé par Drjuche Voir le message
    Donc je cherche à modifier un programme python depuis un autre programme.
    Les script Python sont juste des fichiers "texte"... donc c'est "techniquement" possible. Ce qui ne signifie pas que ce soit une bonne idée (mais c'est vous que çà regarde)

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

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 26
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2019
    Messages : 7
    Points : 9
    Points
    9
    Par défaut
    Concrètement je n'ai pas le choix, car si je décide de mettre mes class dans le même fichier que mon interface graphique, le logiciel que j'utilise par la suite pour afficher les diagrammes ne sera pas content. (il est très capricieux)

    J'ai décidé d'appliquer le format classique que j’utiliserai pour un .txt

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    def Modifier(lien, recherche, ajout):   ##lien = nom du fichier, recherche= nom recherche (lieu a modifier), ajout= caractère a ajouter
        with open(lien, 'r+') as file:  ##ouvre et ferme le fichier automatique
            text = file.read()
            i = text.index(recherche)       ##enregistre le numéro de ligne où la modification doit avoir lieu
            file.seek(0)
            file.write(text[:i] + recherche+ ajout+"          ")  ##Espace vide pour supprimer le texte qui reste, si on remplace 7caractère par 3caractère il va rester les 4 derniers caractères de depart
    ça fonction très bien avec un .txt mais avec un .py, j'ai toujours la même erreur avec l'index qui est substring not found. Mais si vous dites que c'est faisable, c'est que j'ai un soucis dans mon programme. Lorsque je recherche le lieu à modifier j'utiliser une chaîne de caractère "nomrechercher" pour un .txt c'est bon une chaîne de caractère = une chaîne de caractère mais pour python j'ai l'impression que c'est différent, avez vous une idée dessus?

    PS: je sais que la dernière ligne ou j’écris les nouveaux caractères, c'est de la magouille, je ferai ça proprement après

  4. #4
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2018
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2018
    Messages : 41
    Points : 81
    Points
    81
    Par défaut
    Bonjour,
    Comme déjà répondu, les fichiers scripts python SONT des fichiers au format texte. On peut très bien lancer un fichier txt s'il contient du code python.
    S'il y a une erreur, il faudrait que tu nous donnes plus de précisions, et ça ne vient assurément pas du nom du fichier (en l'occurrence l'extension).
    Attention cependant aux problèmes posés parfois par l'unicode, qui n'ont de toutes façons jamais rien à voir avec l'erreur citée.

  5. #5
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    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 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Salut,

    Citation Envoyé par Drjuche Voir le message
    avez vous une idée dessus?
    text.index(recherche) est juste une opération qui recherche une chaîne de caractères dans une autre.
    Donc si çà ne trouve rien, c'est qu'il y a rien à trouver... ou plutôt que le problème est "ailleurs".
    Le plus simple dans ces cas là est sans doute de lancer l'interpréteur Python et d’exécuter les instructions "à la main".
    Ça permet de répondre plus rapidement aux questions qu'on peut se poser sur le contenu de text après la lecture du fichier.

    Citation Envoyé par Drjuche Voir le message
    Concrètement je n'ai pas le choix, car si je décide de mettre mes class dans le même fichier que mon interface graphique, le logiciel que j'utilise par la suite pour afficher les diagrammes ne sera pas content. (il est très capricieux)
    Avec Python, on peut avoir son code dans des fichiers différents et utiliser "import" pour les charger.
    Mais vous n'avez pas besoin de les modifier, juste définir le chemin permettant à la logique d'"import" d'y accéder.
    Et si tant est que vous deviez adapter le contenu de ces "class", l'héritage permet de faire cela très bien (et sans toucher aux originaux).

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

  6. #6
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 26
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2019
    Messages : 7
    Points : 9
    Points
    9
    Par défaut
    Je vous remercie d'avoir répondu aussi vite, je pense avoir localiser mon erreur, je vais également me renseigner concernant l'héritage afin de voir qu'elle est le meilleur point de vue.
    Je ne ferme pas le Topic tous de suite car j'aimerais pouvoir revenir vers vous si je n'arrive toujours pas à régler le problème.

  7. #7
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2018
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2018
    Messages : 41
    Points : 81
    Points
    81
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Le plus simple dans ces cas là est sans doute de lancer l'interpréteur Python et d’exécuter les instructions "à la main".
    - W
    Aïe, j'ai mal...
    Il y tant de bon debogueurs utilisables avec python ! Sans parler de idle (livré avec), on a winpdb (graphique sous linux), pudb (texte, pratique quand on est en ssh), pywin32 (graphique sous windows), et puis les EDI (eric, boa) qui ont aussi un debugger !
    C'est ce que tu voulais dire bien sûr ?

  8. #8
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    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 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Citation Envoyé par jmbain Voir le message
    C'est ce que tu voulais dire bien sûr ?
    Un débogueur, c'est pour mettre au point un programme.
    Et si on n'est pas encore confiant avec des instructions de base comme str.index,
    Pianoter à la console pour explorer ce que contient un fichier, ce que fait str.index,... sera sans doute plus adapté pour construire ses repères.

    Et puis un des avantages de Python est qu'on peut accéder (et modifier) au code source sur l'environnement où se produit le soucis. Cela évite d'avoir à décrire la séquence qui conduit à... pour pouvoir reproduire sur son poste de travail, diagnostiquer et livrer un correctif.
    Ce genre de raccourci est impossible à prendre avec des langages compilés. Encore faut-il savoir utiliser les outils de bases et ne pas se retrouver perdu dès qu'on sort du confort de son IDE.

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

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 19/08/2008, 16h15
  2. accès à un fichier excel depuis un autre fichier excel
    Par Patnel dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 08/11/2007, 15h09
  3. appeler la fonction d'un fichier js depuis un autre fichier
    Par kohsaka dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 13/09/2007, 18h49
  4. Réponses: 3
    Dernier message: 31/05/2007, 01h52
  5. modifier un fichier SVG depuis HTML
    Par la.sophe dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 01/03/2006, 21h49

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