Seite 1 von 1

probleme popen und parameterübergabe

Verfasst: Sonntag 2. September 2012, 10:31
von ihPyP
Hallo,

ich habe ein Problem mit der Anweisung "subprocess.Popen". Mit Hilfe eines kleinen Programmes baue ich mir eine Befehlszeile zusammen, die in der Kommandozeile (WIN) ausgeführt werden soll. Der Aufruf könnte sieht wie folgt auf:

Code: Alles auswählen

command = "MeinProgramm.exe < Commandos.txt"
subprocess.Popen(command)
In der Datei Commandos.txt stehen mehrere Anweisungen, die auf diese Weise an das Programm "MeinProgramm.exe" übermittelt werden. Aber genau das scheint beim Aufruf von subprocess.popen nicht richtig zu funktionieren. Ich habe den Eindruck, dass dies an dem "<"-Zeichen u.a. liegt. Kann mir jemand weiterhelfen, wie ich das am besten löse?

Besten Dank im Voraus.

Re: probleme popen und parameterübergabe

Verfasst: Sonntag 2. September 2012, 10:52
von BlackJack
@ihPyP: Dein Kommando ist Shell-Syntax, aber `Popen` startet die Programme *direkt*, ohne den Umweg über eine Shell. Und das sollte man auch nicht ändern (wollen). Du musst die Aufgabe der Shell hier übernehmen und die Datei öffnen und dem gestarteten Programm als Standardeingabedatei übergeben:

Code: Alles auswählen

with open('Kommandos.txt') as command_file:
    process = subprocess.Popen(['MeinProgramm.exe'], stdin=command_file)