128 votes

Python : Comment obtenir stdout après avoir lancé os.system ?

Je veux obtenir le stdout dans une variable après avoir exécuté le os.system appeler.

Prenons cette ligne comme exemple :

batcmd="dir"
result = os.system(batcmd)

result contiendra le code d'erreur ( stderr 0 sous Windows ou 1 sous linux pour l'exemple ci-dessus).

Comment puis-je obtenir le stdout pour la commande ci-dessus sans utiliser la redirection dans la commande exécutée ?

5voto

buxizhizhoum Points 313

commands fonctionne également.

import commands
batcmd = "dir"
result = commands.getoutput(batcmd)
print result

Il fonctionne sur linux, python 2.7.

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