Quelle est la différence entre les sous-processus.Popen() et de l'os.system() ?
Réponses
Trop de publicités?Si vous découvrez la section sous-processus de l'Python docs, vous remarquerez qu'il y a est un exemple de la façon de remplacer os.system()
avec subprocess.Popen()
:
sts = os.system("mycmd" + " myarg")
...fait la même chose que...
sts = Popen("mycmd" + " myarg", shell=True).wait()
Le "amélioré" le code a l'air plus compliqué, mais il vaut mieux, car une fois que vous savez subprocess.Popen()
, vous n'avez pas besoin de rien d'autre. subprocess.Popen()
remplace plusieurs autres outils (os.system()
est juste un de ceux) qui ont été dispersés à travers trois autres modules Python.
Si cela peut aider, pensez à subprocess.Popen()
très souple os.system()
.
os.le système est équivalent à Unix, système de commande, tandis que les sous-processus est un module d'aide créé afin de fournir de nombreux équipements fournis par l'Popen commandes avec un plus facile et contrôlable de l'interface. Ceux qui ont été conçus similaire à Unix Popen de commande.
system() executes a command specified in command by calling /bin/sh -c command, and returns after the command has been completed
où que
The popen() function opens a process by creating a pipe, forking, and invoking the shell.
Si vous pensez, lequel utiliser, puis utiliser des sous-processus certainement parce que vous, vous avez toutes les facilités pour l'exécution, en plus de plus de contrôle sur le processus.