J'ai lu cela quelque part il y a quelque temps, mais je n'arrive pas à le trouver. J'essaie de trouver une commande qui exécutera des commandes dans le terminal et produira ensuite le résultat.
Par exemple: le script sera:
command 'ls -l'
Il sortira le résultat de l'exécution de cette commande dans le terminal
os.system("nslookup gmail.com")
ne renvoie que la dernière ligne0
, mais je veux obtenir la réponse complète.Je préfère l'utilisation du module de sous-processus:
La raison est que si vous voulez passer une variable dans le script, cela donne un moyen très simple, par exemple, prenez la partie suivante du code
la source
call(["eog", "1breeproposal.png", "-f"])
En fait, toute question sur le sous-processus sera une bonne lecture
la source
Vous devriez également regarder dans commands.getstatusoutput
Cela renvoie un tuple de longueur 2 .. Le premier est l'entier de retour (0 - lorsque les commandes sont réussies), le second est la sortie entière comme cela sera montré dans le terminal.
Pour ls
la source
Cela devrait fonctionner. Je ne sais pas comment imprimer la sortie dans le shell python.
la source
Le os.popen () est assez simple à utiliser, mais il a été dépréciée depuis Python 2.6. Vous devez utiliser le module de sous - processus à la place.
Lire ici: lire un os.popen (commande) dans une chaîne
la source
Jupyter
Dans un notebook Jupyter, vous pouvez utiliser la fonction magique
!
ipython
Pour l'exécuter en tant que
.py
script, vous devez utiliseripython
exécuter le script
la source
Vous pouvez importer le module 'os' et l'utiliser comme ceci:
la source
pour python3, utilisez le sous-processus
la source