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

Interfaçage autre langage Python Discussion :

commande bash depuis python


Sujet :

Interfaçage autre langage Python

  1. #1
    Membre à l'essai
    commande bash depuis python
    Bonjour à tous,
    Première venue sur le forum, soit merci au créateurs/membres actifs de ce bon site.

    J'aimerais depuis l'IDLE de python taper ces commandes bash, comment faire?

    export FREESURFER_HOME=/usr/local/freesurfer
    source $FREESURFER_HOME/SetUpFreeSurfer.sh

    Voici ou j'en suis rendu:

    os.environ['FREESURFER_HOME'] = "/usr/local/freesurfer"

    Merci sincèrement.

  2. #2
    Membre éprouvé
    Bonsoir,
    Une possibilité: utiliser, dans le module os, la méthode popen:
    (avec un read() pour la lecture de la sortie)

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    >>> from os import popen
    >>> sortie=popen("ls")
    >>> ma_lst = sortie.read()
    >>> print(ma_lst)


    Je ne mets pas la sortie… Mais l'une des idées est ici…

    PS: il y a bien sûr, aussi, de nombreuses commandes équivalentes à celle du bash dans les modules os et os.path (et d'autres… sys… )
    Un tour sur la doc Python donnera plus de renseignements

    Voilà…

    Clodion

  3. #3
    Membre à l'essai
    Merci Clodion,
    Mais mon but est d’exécuter ce qui normalement s’exécute via Bash(ubuntu) par:
    export FREESURFER_HOME=/usr/local/freesurfer
    source $FREESURFER_HOME/SetUpFreeSurfer.sh

    en un script python directement.
    Je ne vois donc pas en quoi tu utilises la fonction "print", je pense que la solution est vers pour export:
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    os.environ['FREESURFER_HOME'] = "/usr/local/freesurfer"

    Mais quid de 'source'?

    Merci par avance.
    Frederic

  4. #4
    Expert éminent
    Bonjour,

    Sinon, souvent inconnu, le package subprocess, qui permet outre l'execution de la commande, d'attendre que la commande se termine, et même d'afficher la sortie standard dans l'écran, ou dans un log.
    "La connaissance appartient à tout le monde" (Film Antitrust)

    Tout le nécessaire pour Python:
    *News/Accueil *Cours/tutoriels *FAQ
    *Forums *Outils dédiés *Mon espace personnel avec mes Articles, Cours et Tutoriels

  5. #5
    Membre à l'essai
    Ok, je m'en satisferai. merci beaucoup.
    Frederic

  6. #6
    Expert éminent
    Si les reponses apportees repondent à ta demande, un petit resolu, pour indiquer aux autres membres qu'une solution est disponible pour ce probleme.

    Merci pour eux
    "La connaissance appartient à tout le monde" (Film Antitrust)

    Tout le nécessaire pour Python:
    *News/Accueil *Cours/tutoriels *FAQ
    *Forums *Outils dédiés *Mon espace personnel avec mes Articles, Cours et Tutoriels

###raw>template_hook.ano_emploi###