40 votes

Comment simplement appeler une commande et ne pas obtenir sa sortie

En Python, quelle est la manière la plus courte et la plus standard d'appeler une commande via subprocess mais sans se soucier de sa sortie.

J'ai essayé subprocess.call mais il semble retourner la sortie. Je ne suis pas dérangé par cela, je dois juste exécuter le programme en silence sans que la sortie encombre l'écran.

Si ça peut aider, j'appelle pdflatex et mon intention est juste de l'appeler.

60voto

Sven Marnach Points 133943

Dans le cas où votre processus produit des quantités importantes de sortie que vous ne voulez pas mettre en mémoire tampon, vous devez rediriger la sortie vers la corbeille électronique :

subprocess.run(["pdflatex", filename], stdout=subprocess.DEVNULL)

La valeur spéciale DEVNULL indique que la sortie est envoyée au périphérique NULL approprié de votre système d'exploitation (/dev/null sur la plupart des OS, nul sur l'autre).

3voto

Tyler Eaves Points 5758

il suffit de l'appeler tel que vous êtes et de pointer >/dev/null à la fin de la comamnd. Cela redirigera toute sortie textuelle.

3voto

Utilisez/dev/null si vous utilisez Unix. Si vous exécutez une commande dans Shell et que vous ne voulez pas afficher sa sortie sur le terminal.

Par exemple :- ls > /dev/null ne produira aucune sortie sur le terminal.

Il suffit donc d'utiliser os,sous-processus pour exécuter quelque chose sur shell et de mettre son o/p dans /dev/null.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X