Comment faire pour exécuter exécutable externe à l'aide de Python?
J'ai un exécutable externe fichier que je suis en train de lancer à partir d'un script Python. CMD exécutable s'exécute, mais sans générer de sortie. Probablement, il n'sortie avant sortie peut être généré. Toute suggestion sur la façon de retarder la sortie jusqu'à ce que les sorties sont-elles générées?
import subprocess, sys
from subprocess import Popen, PIPE
exe_str = r"C:/Windows/System32/cmd C:/temp/calc.exe"
parent = subprocess.Popen(exe_str, stderr=subprocess.PIPE)
Probablement mieux de demander ce sur Stackoverflow?
C'est la question relative à l'utilisation des SIG?
Peut-être que vous avez raison. Les données d'entrée est de l'élévation et de la direction de l'écoulement, c'est pourquoi je l'ai posté ici.
DOS? Ne vous signifie pas une interface de ligne de commande (CLI) appliction? MS-DOS a été interrompu plus de 12 ans.
oui, je veux dire l'invite de commande. merci pour la clarification.
C'est la question relative à l'utilisation des SIG?
Peut-être que vous avez raison. Les données d'entrée est de l'élévation et de la direction de l'écoulement, c'est pourquoi je l'ai posté ici.
DOS? Ne vous signifie pas une interface de ligne de commande (CLI) appliction? MS-DOS a été interrompu plus de 12 ans.
oui, je veux dire l'invite de commande. merci pour la clarification.
OriginalL'auteur Ibe | 2012-11-01
Vous devez vous connecter pour publier un commentaire.
utilisation
subprocess.call
, plus d'infos ici:ou
j'espère que ça vous aide...
import time time.sleep(3)
Bizarre. Même avec 3 sec condition qu'il ne génère pas de sortie. J'ai augmenté le temps mais pas l'utiliser. Pas sûr de ce que pourrait être le problème.
OriginalL'auteur Aragon
La
os.system
méthode est déprécié et ne doit pas être utilisé dans de nouvelles applications. Le sous-processus module est le pythonic moyen de faire ce dont vous avez besoin.Voici un exemple de code que j'ai écrit il y a quelques semaines à l'aide de
subprocess
de charger des fichiers, la commande que vous devez utiliser pour retarder la sortie jusqu'à ce que les données ont été reçues et lancé le programme estwait()
:creationflags=0x08000000
est un paramètre facultatif qui supprime le lancement d'une fenêtre, ce qui peut être utile si le programme que vous êtes en l'appelant n'a pas besoin d'être vu directement.OriginalL'auteur sgrieve
Option 1
Option 2
Option 3
OriginalL'auteur Sykam Sreekar Reddy