J'essaye d'écrire un script python (dans Windows) qui exécute un fichier batch et prendra la sortie de la ligne de commande de ce fichier batch en entrée. Le fichier de commandes exécute des processus auxquels je n'ai pas accès et génère des résultats en fonction de la réussite de ces processus. Je voudrais prendre ces messages du fichier de commandes et les utiliser dans le script python. Quelqu'un a des idées sur la façon de faire cela?Piping Batch Fichier de sortie vers un script Python
3
A
Répondre
1
Essayez le sous-processus.Popen(). Il vous permet de rediriger stdout et stderr vers des fichiers.
2
Voici un script python exemple qui fonctionne test.bat et affiche la sortie:
import os
fh = os.popen("test.bat")
output = fh.read()
print "This is the output of test.bat:", output
fh.close()
Source de test.bat:
@echo off
echo "This is test.bat"
8
import subprocess
output= subprocess.Popen(
("c:\\bin\\batch.bat", "an_argument", "another_argument"),
stdout=subprocess.PIPE).stdout
for line in output:
# do your work here
output.close()
Notez qu'il est préférable de commencer votre fichier batch avec "@echo off
".