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 :

Executer script Python à partir de Python


Sujet :

Python

  1. #1
    Membre émérite

    Homme Profil pro
    Inscrit en
    Octobre 2009
    Messages
    789
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Octobre 2009
    Messages : 789
    Par défaut Executer script Python à partir de Python
    Bonsoir à tous,

    Une fois de plus, je me retourne vers vous pour avoir vos conseils car cela fait quelques heures que je galère.

    Je souhaiterais donc exécuter un script Python à partir de Python.
    Ce script, que je veux executer, doit recevoir une variable et me retourner un résultat.

    Ma question est donc :
    Comment exécuter ce script en lui déclarant une variable et comment récupérer le résultat dans mon 1° script ?

    Merci beaucoup

    Cordialement

    Christophe

  2. #2
    Membre émérite
    Avatar de panda31
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juin 2003
    Messages
    670
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2003
    Messages : 670
    Par défaut
    Bonjour

    voir du côté du module subprocess et notamment la méthode Popen.

    Pour Python 2.7.2: http://docs.python.org/library/subprocess.html

    Sinon, pourquoi ne pas appeler une méthode du script python en question pour le lancer (si tant est qu'une telle fonction ait déjà été implémentée) ?
    En gros, rendre le script appelable.
    Michaël Mary
    Consultant PLM dans une société de conseil toulousaine
    Auditeur CNAM-IPST depuis septembre 2008
    "Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live."
    John F. Woods
    mon cv et mon domaine et mon blog
    Aucune question technique par MP, svp

  3. #3
    Membre émérite

    Homme Profil pro
    Inscrit en
    Octobre 2009
    Messages
    789
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Octobre 2009
    Messages : 789
    Par défaut
    Bonsoir Panda31,

    Merci pour le lien. J'ai déjà lu ce document et je n'y comprend rien.
    Il n'y a pas très longtemps que je fais du Python et je loin d'être à l'aise avec ce type de code.

    Sinon, pourquoi ne pas appeler une méthode du script python en question pour le lancer (si tant est qu'une telle fonction ait déjà été implémentée) ?
    En gros, rendre le script appelable.
    Là encore, je suis désolé, mais je n'ai compris.

    Un petit exemple serait vraiment le bienvenu.

    Cordialement

    Christophe

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 695
    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 695
    Par défaut
    Salut,

    Citation Envoyé par marsouin_89 Voir le message
    Je souhaiterais donc exécuter un script Python à partir de Python. Ce script, que je veux executer, doit recevoir une variable et me retourner un résultat.
    Sauf a nous expliquer le pourquoi de la chose, ce n'est pas la façon la plus simple pour faire cela.

    Si un "programme" Python découpé a été en plusieurs scripts (a.py, b.py, ...) l'un d'entre devra être lancé en premier et "charger" les autres.

    Soit a.py le script 'lancé' en premier.
    Si le code de a.py a besoin de choses contenue dans b.py, il lui suffira de faire "import b" pour y accéder.

    Enfin bon le tutorial Python raconte cela très bien: http://docs.python.org/tutorial/modules.html

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

  5. #5
    Membre Expert Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Par défaut
    Bonsoir,

    Ce dont parle panda31 c'est le mécanisme d'import.

    Un exemple simple
    Le fichier uncript.py
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    def untruc(nb):
        return nb*3
    Le fichier unautrescript.py
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    from unscript import *
    print(untruc(3))
    Sortie
    patrice@Zeus:~/Bureau$ /usr/bin/python2.6 unautrescript.py
    9
    Voici maintenant les différentes formes d'importation (sur le même exemple: Vous pouvez tester avec unscript.py.).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    from unscript import *
    print(untruc(3))
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    from unscript import untruc
    print(untruc(3))
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    import unscript
    print(unscript.untruc(3))
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    import unscript as us
    print(us.untruc(3))
    (Et un dernier)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    unscript = __import__("unscript")
    print(unscript.untruc(3))
    Par appelable panda31 pense à une classe mais vous voyez ici qu'une simple fonction fait l'affaire. A vous de voir ce que vous voulez mettre dans 'unscript'.

    @+

    Edit: grilled, avec un lien en plus.

  6. #6
    Membre émérite

    Homme Profil pro
    Inscrit en
    Octobre 2009
    Messages
    789
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Octobre 2009
    Messages : 789
    Par défaut
    Bonsoir,

    Merci à vous tous de m'avoir aider.

    Tout fonctionnement maintenant parfaitement.
    Il manquait ces petits détails qui me permettent désormais de pouvoir avancer dans mon projet.

    Encore une fois, un grand merci à vous tous.

    Cordialement

    Christophe

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

Discussions similaires

  1. Résultats Execution Script Python
    Par PythonNovices dans le forum Général Python
    Réponses: 2
    Dernier message: 17/12/2014, 15h10
  2. executer script python ros
    Par sigis dans le forum Apache
    Réponses: 2
    Dernier message: 03/02/2014, 18h04
  3. Execution Script SQL à partir d'une interface asp
    Par Mils34 dans le forum ASP.NET
    Réponses: 1
    Dernier message: 27/03/2011, 18h31
  4. Réponses: 10
    Dernier message: 16/02/2009, 18h56
  5. Executer un script a partir d'un autre
    Par finot dans le forum VBScript
    Réponses: 3
    Dernier message: 18/08/2006, 16h01

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