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, puis affichera 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
Il y a plusieurs moyens de le faire:
Un moyen simple consiste à utiliser le module os:
import os
os.system("ls -l")
Des résultats plus complexes peuvent être réalisés avec le module de sous-processus: Par exemple:
import subprocess
test = subprocess.Popen(["ping","-W","2","-c", "1", "192.168.1.70"], stdout=subprocess.PIPE)
output = test.communicate()[0]
Je préfère utiliser le module de sous-processus:
from subprocess import call
call(["ls", "-l"])
La raison est que si vous voulez passer une variable dans le script, cela donne un moyen très simple, par exemple de prendre la partie suivante du code
abc = a.c
call(["vim", abc])
En fait, toute question sur le sous-processus sera une bonne lecture
Vous devriez aussi regarder commands.getstatusoutput
Cela renvoie un tuple de longueur 2 .. Le premier correspond au nombre entier renvoyé (0 - lorsque les commandes aboutissent) Second correspond à l'ensemble de la sortie, comme indiqué dans le terminal.
Pour ls
import commands
s=commands.getstatusoutput('ls')
print s
>> (0, 'file_1\nfile_2\nfile_3')
s[1].split("\n")
>> ['file_1', 'file_2', 'file_3']
Le os.popen () est assez simple à utiliser, mais il est déconseillé depuis Python 2.6 . Vous devriez plutôt utiliser le module subprocess.
import os
os.system("echo 'hello world'")
Cela devrait marcher. Je ne sais pas comment imprimer la sortie dans le shell Python.
Vous pouvez importer le module 'os' et l'utiliser comme ceci:
import os
os.system('#DesiredAction')