Je veux exécuter une commande en pythong
, à l'aide de la sous-processus module, et de stocker le résultat dans une variable. Cependant, je ne veux pas la sortie de la commande à imprimer vers le terminal.
Pour ce code:
def storels():
a = subprocess.Popen("ls",shell=True)
storels()
Je reçois la liste des répertoires dans le terminal, au lieu de l'avoir stocké dans a
. J'ai aussi essayé:
def storels():
subprocess.Popen("ls > tmp",shell=True)
a = open("./tmp")
[Rest of Code]
storels()
Ce imprime également la sortie de ls de mon terminal. J'ai même essayé cette commande avec la date un peu os.méthode de système, depuis l'exécution d' ls > tmp
dans le terminal n'est pas imprimer ls
pour le terminal à tous, mais les stocke dans tmp
. Cependant, la même chose arrive.
Edit:
J'obtiens l'erreur suivante après avoir suivi marcog les conseils, mais seulement lors de l'exécution de plus en plus complexes de commande. cdrecord --help
. Python crache ceci:
Traceback (most recent call last):
File "./install.py", line 52, in <module>
burntrack2("hi")
File "./install.py", line 46, in burntrack2
a = subprocess.Popen("cdrecord --help",stdout = subprocess.PIPE)
File "/usr/lib/python2.6/subprocess.py", line 633, in __init__
errread, errwrite)
File "/usr/lib/python2.6/subprocess.py", line 1139, in _execute_child
raise child_exception
OSError: [Errno 2] No such file or directory