probleme popen und parameterübergabe

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
ihPyP
User
Beiträge: 58
Registriert: Samstag 4. September 2010, 23:06

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.
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)
Antworten