2017-07-09 4 views
-2

je suis en train d'exécuter une ligne de commande dans le script python, comme:Exécuter la ligne de commande en python et enregistrer les détails

ping 8.8.8.8 

et quand j'écris ce code:

import os 
os.system('ping 8.8.8.8') 

il me impression les détails de la commande. mais je le veux pour être la commande d'arrière-plan, ce que signifie que je ne veux pas d'utilisateur verra tous les détails. je veux l'enregistrer en varilble, et ensuite éditer et imprimer comme je le souhaite. comment puis-je faire cela? je tente de stocker ce que le retour de la fonction, comme:

answer = os.system('ping 8.8.8.8') 

mais le retour de la fonction 0. aider quelqu'un?

+0

utilisation 'subprocess.check_output()' à la place – Anthon

+5

en double possible de [affectation d'une sortie de os.system à une variable et l'empêcher d'être affiché à l'écran] (https://stackoverflow.com/questions/ 3503879/assign-output-of-os-system-to-a-variable-and-prevent-it-from-being-displayed-on) – Craig

Répondre

0

Il suffit de créer un fichier bat avec le ping 8.8.8.8 écrit dedans. Ensuite, vous pouvez utiliser la commande subprocess pour l'appeler depuis le script python.

import subprocess 
subprocess.Popen('ping.bat') 
+0

Vous ne pouvez pas appeler le module que vous importez – Anthon

+0

Modifié. Maintenant, vous pouvez supprimer votre downvote. @Anthon –

0

import os res = os.popen('ping 8.8.8.') print(res.read()) res.close()

Mais je pense qu'il est plus sûr d'utiliser subprocess.Popen() au lieu de os.popen().
Here show how to switch over