Probleme mit subprocess.Popen

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
kevelll
User
Beiträge: 10
Registriert: Donnerstag 9. Juli 2009, 11:04

Hallo zusammen,

ich habe ein Problem mit "subprocess.Popen" bei der Übergabe von Argumenten an ein Programm! Hatte zuvor noch nie mit "subprocess.Popen" was gemacht!

Folgende Situation:

Ich habe ein Programm -> "vcbMounter.exe" das mit Argumente/Übergabeparameter gefüttert werden muss!

Argumente: -h 192.168.210.5 -m nbd -u administrator -a name:fw2 -r C:\vcb\fw2


Habe bis jetzt folgende ausprobiert:

Path zum Programm:

Code: Alles auswählen

#Pfad zum Programm
cmd2 = "C://Programme//...//vcbMounter.exe"

Code: Alles auswählen

vcbMounter = subprocess.Popen([cmd2], stdout=subprocess.PIPE)
vcbMounter.wait()
vcbMounter = vcbMounter.stdout.read()
Scheint auch zu funktionieren da auf der Konsole Rückgabetexte (Argumente fehlen etc.) vom ausführbaren Programm kommen!

Nur leider weiß ich nicht, wie ich meine Argumente übergebe! Habe schon ein paar Sachen ausprobiert aber bekomme es nicht hin!

Kann mir da jemand auf die Sprünge helfen?
Würde mich über jede Antwort/Hilfestellung von euch freuen!

Vielen Dank im voraus..!
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Uebergib die Argumente als Liste:

Code: Alles auswählen

exec_path = r"C:\Programme\...\vcbMounter.exe"
arguments = [exec_path, "-h", "192.168.210.5", "-m", "nbd", "-u", "administrator", "-a", "name:fw2", "-r", r"C:\vcb\fw2"]
vcbMounter = subprocess.Popen(arguments,stdout=subprocess.PIPE)
...
kevelll
User
Beiträge: 10
Registriert: Donnerstag 9. Juli 2009, 11:04

Super vielen Dank! Mein Fehler war, dass ich bei der Paramterübergabe die Werte falsch getrennt hatte!

So hatte ich es gemacht: "-h 192.168.210.5" usw..!
Wusste nicht das jedes Element einzeln stehen muss!

Daher auch der Fehler!
Danke für die schnelle Antwort!
Antworten