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 :

Lancer un script shell depuis un script python


Sujet :

Python

  1. #1
    Membre �clair�
    Inscrit en
    Septembre 2006
    Messages
    365
    D�tails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 365
    Par d�faut Lancer un script shell depuis un script python
    Bonjour,

    Comment Lancer un script shell depuis un script python ?

    j'ai essay� plusieurs trucs
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
     
    import os
    os.system('sh C:\temp\script.sh')
    ou encore
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
     
    import subprocess
    subprocess.call("C:\temp\script.sh",shell=True)
    pr�fix�s ou pas du sh � chaque fois..

    Rien ne se passe.
    Ca retourne 1! mais le script ne semble pas tourner puisque il ne fait pas ce qu'il est cens� faire..


    Quelqu'un connait une syntaxe qui marche? Merci

  2. #2
    Membre chevronn�
    Inscrit en
    Janvier 2007
    Messages
    329
    D�tails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 329
    Par d�faut
    Salut,

    essaie �a :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
     
    import os
    os.system('sh C:\\temp\\script.sh')

  3. #3
    Membre �clair�
    Inscrit en
    Septembre 2006
    Messages
    365
    D�tails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 365
    Par d�faut
    non toujours pas.. j'avais d�ja pens� � �a.. ajout� des guillmets, ...
    il semble que je ne suis pas du tout sur la bonne voie!

  4. #4
    Membre chevronn�
    Inscrit en
    Janvier 2007
    Messages
    329
    D�tails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 329
    Par d�faut
    Question idiote : sh fonctionne sous windows ? Si oui, c'est pas sh.exe ?

  5. #5
    Membre �m�rite
    Homme Profil pro
    heu...
    Inscrit en
    Octobre 2007
    Messages
    648
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (�le de France)

    Informations professionnelles :
    Activit� : heu...

    Informations forums :
    Inscription : Octobre 2007
    Messages : 648
    Par d�faut
    Si je ne me trompe pas sh est une 'commande' linux pour executer un shell script, et sous windows, l"�quivalent des shell script sont les batch (les.bat), et si je ne me trompes toujours pas, les .bat s'execute tes quels, ex : os.system('./MonBat.bat')

  6. #6
    Membre �clair�
    Inscrit en
    Septembre 2006
    Messages
    365
    D�tails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 365
    Par d�faut
    tu te trompes lourdement
    sh ou sh.exe est un executable pour executer les scripts shell qui fonctionne tr�s bien sous windows au meme titre que sous Unix ..
    Dire que l'�quivalent des shell script est le batch est une �norme b�tise.

    Pour recadrer ce post car vous semblez perdre le fil de cette discussion :

    Je demande juste comment appeler un shell script depuis un script python.
    Il devrait y avoir un moyen, non?

    Merci

  7. #7
    Membre chevronn�
    Inscrit en
    Janvier 2007
    Messages
    329
    D�tails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 329
    Par d�faut
    J'ai trouv� �a dans la doc python :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
     
    import os
    import subprocess
     
    p = subprocess.Popen("'sh C:\\temp\\script.sh'", shell=True)
    sts = os.waitpid(p.pid, 0)
    si �a marche toujours pas, essaie de donner le chemin complet de "sh".

    Liens :
    http://docs.python.org/lib/module-subprocess.html
    http://www.haypocalc.com/wiki/Python_subprocess

  8. #8
    Membre �clair�
    Inscrit en
    Septembre 2006
    Messages
    365
    D�tails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 365
    Par d�faut
    idem
    marche pas
    en plus j'ai une erreur maintenant :
    Traceback (most recent call last):
    File "<interactive input>", line 1, in <module>
    OSError: [Errno 10] No child processes

  9. #9
    Membre chevronn�
    Inscrit en
    Janvier 2007
    Messages
    329
    D�tails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 329
    Par d�faut
    Derni�re tentative : essaie une de ces solutions :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
     
    import os
    import subprocess
    p = subprocess.Popen(["sh","C:\\temp\\script.sh"])
    sts = os.waitpid(p.pid, 0)
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
     
    import os
    import subprocess
    p = subprocess.Popen(["sh",'''"C:\temp\script.sh"'''])
    sts = os.waitpid(p.pid, 0)
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
     
    import os
    os.system('''sh "C:\temp\script.sh"''')
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
     
    import os
    # avec le bon répertoire pour sh...
    os.system('''"C:\Windows\sh.exe" "C:\temp\script.sh"''')
    quand tu fais "sh C:\temp\script.sh" dans une console, �a marche au moins ?

  10. #10
    Membre �clair�
    Inscrit en
    Septembre 2006
    Messages
    365
    D�tails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 365
    Par d�faut
    toujours pas ..

    et puis OUI ca marche sur une console

    Je ne con�ois pas que c'est pas faisable!

  11. #11
    Membre chevronn�
    Homme Profil pro
    D�veloppeur
    Inscrit en
    Juin 2006
    Messages
    645
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 40
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur

    Informations forums :
    Inscription : Juin 2006
    Messages : 645
    Par d�faut
    C:\Documents and Settings\A319400>sh
    'sh' n'est pas reconnu en tant que commande interne
    ou externe, un programme ex�cutable ou un fichier de commandes.
    Moi je dis �a, je ne dis rien...

    Petite remarque au passage : essaie de ne pas �tre aussi agressif dans tes messages, �a ne donne pas trop envie de te r�pondre.

  12. #12
    Membre �clair�
    Inscrit en
    Septembre 2006
    Messages
    365
    D�tails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 365
    Par d�faut
    Tant que ton sh n'est pas dans le PATH (variable d'environnement), c'est normal..

    mais pourquoi vous vous acharnez sur le sh? virez le si ca vous chante.. je demande juste comment faire pour appeler un script shell depuis python

  13. #13
    Membre chevronn�
    Homme Profil pro
    D�veloppeur
    Inscrit en
    Juin 2006
    Messages
    645
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 40
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur

    Informations forums :
    Inscription : Juin 2006
    Messages : 645

  14. #14
    Membre �clair�
    Inscrit en
    Septembre 2006
    Messages
    365
    D�tails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 365
    Par d�faut
    Bon j'ai trouv�
    En fait, toutes les syntaxes du d�but sont bonnes. j'avais juste des probl�mes dans les chemins � l'int�rieur de mon script shell

    D�sol� pour tout �a..

    Maintenant, plus int�ressant, je cherche un moyen de savoir si mon script shell est arriv� au bout sans erreurs.

    A l'int�rieur du script shell, j'ai impl�ment� un code retour (exit o ou 1 selon il ya erreur ou pas) .. mais depuis python, comment r�cup�rer ce code retour? y a t il une autre parade plus simple?

    Merci

  15. #15
    Membre chevronn�
    Inscrit en
    Janvier 2007
    Messages
    329
    D�tails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 329
    Par d�faut
    content de voir que �a marche enfin !

    La fonction subprocess.call renvoie le code de retour :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    code_retour = subprocess.call(["/bin/mycmd", "myarg"])

  16. #16
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    2
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 2
    Par d�faut
    hello,

    Pour lancer un fichier (.exe, .avi, .bat ....) il y a la fonction os.startfile qui lance le fichier avec le programme associ� automatiquement. Par exemple en faisant:
    ca lancera le fichier video avec votre player habituel (comme si on double-cliker sur le ficier).
    C'est une fonction pas tr�s connut mais qui peut rendre bien des services

  17. #17
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    F�vrier 2006
    Messages
    12 840
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels
    Secteur : A�ronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : F�vrier 2006
    Messages : 12 840
    Billets dans le blog
    1
    Par d�faut
    Citation Envoy� par freestyler Voir le message
    tu te trompes lourdement
    Dire que l'�quivalent des shell script est le batch est une �norme b�tise.
    Dans un fofo, il faut essayer de d�passer le simple mot pour en extraire le fond de la pens�e de l'auteur. Quand il dit "�quivalent" (comme j'aurais pu le dire moi-m�me), il pense plut�t "langage natif permettant d'�crire des scripts" mais cette alit�ration peut se r�sumer par "�quivalent" (pris dans le sens large). Evidemment que le batch n'a pas la puissance et la richesse du shell Unix mais cela permet de donner un ordre d'id�e. Je plussois alband85 quand il te demande d'�tre moins agressif envers les intervenants qui essaient de t'aider � r�soudre ton probl�me.

    Et accessoirement je me demande pourquoi tu cherches � ex�cuter un shell Unix sur du zindow. T'as pas moyen d'int�grer ce shell dans ton programme Python ???
    Mon Tutoriel sur la programmation �Python�
    Mon Tutoriel sur la programmation �Shell�
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les diff�rentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  18. #18
    Membre �clair�
    Inscrit en
    Septembre 2006
    Messages
    365
    D�tails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 365
    Par d�faut
    excuses si j'ai sembl� �tre agressif .. ce n'�tait qu'un simple �change de r�pliques instantan�es pour moi (si j'ai r�pondu ainsi c'est que j'ai d� r�pliquer � plusieurs 'si je ne me trompe pas' ..)
    et puis surtout que j'avais eu l'impression que l'on sortait du sujet de mon post..

    bref.. D�sol� pour tout �a.. ce n'est pas le genre de la maison

    Cela dit, je suis d�butant sur python
    et puis je suis � court de temps, et le script que j'ai �crit en shell n'est pas si simple.. L'id�al serait OUI de transformer tout en python et je suis convaincu que ce serait meme plus facile mais c'est juste une histoire de temps..

  19. #19
    Membre � l'essai
    Homme Profil pro
    Conseil en assistance � ma�trise d'ouvrage
    Inscrit en
    Octobre 2011
    Messages
    5
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Albanie

    Informations professionnelles :
    Activit� : Conseil en assistance � ma�trise d'ouvrage
    Secteur : High Tech - Produits et services t�l�com et Internet

    Informations forums :
    Inscription : Octobre 2011
    Messages : 5
    Par d�faut Lancer un excecutable .exe avec des param�tres
    Besoin de votre aide,
    Je dois lancer un .exe � partir d'un script python mais cette fois avec des param�tres comme ceci :

    os.startfile(' "TmaApplication.exe" /u cmi /c y /p 5003 /a y ' )

    �a ne marche pas meme en pr�cisant le chemin de l'appliction.

    Avez vous une id�e?
    Merci.

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Appel de script shell depuis python
    Par Marc_27 dans le forum G�n�ral Python
    R�ponses: 0
    Dernier message: 15/04/2015, 11h06
  2. appel de script shell depuis un script bat
    Par jonathan1 dans le forum Windows
    R�ponses: 0
    Dernier message: 18/11/2009, 12h34
  3. �crire dans un script shell depuis perl
    Par painouch21 dans le forum Langage
    R�ponses: 1
    Dernier message: 10/02/2008, 14h03
  4. lancer un script perl depuis un script perl
    Par minusette dans le forum Langage
    R�ponses: 7
    Dernier message: 23/08/2006, 12h03
  5. Execution d'un script shell depuis un code C
    Par aproust dans le forum C
    R�ponses: 6
    Dernier message: 12/05/2006, 13h53

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