Seite 2 von 2
Re: .bat mit Listeninhalt ausführen
Verfasst: Donnerstag 7. Juni 2012, 10:25
von Hyperion
Wie ich ja bereits (mehrfach) schrieb, musst Du den Aufruf erst einmal in der Kommandozeile lösen! Das hat mit Python ja nichts aber auch gar nichts zu tun. Wenn Du das kapiert hast, dann musst Du Dir überlegen, wie Du das in Python formulierst.
Ich kenne das Programm ja nicht, aber offensichtlich will es *zwei* Parameter zwingend haben; einmal einen Pfad und einmal einen Dateinamen. Was es damit auf sich hat, kannst nur Du uns mitteilen oder herausfinden

Im Moment übergibst Du nur *einen* Parameter.
Re: .bat mit Listeninhalt ausführen
Verfasst: Donnerstag 7. Juni 2012, 10:26
von OttoPython
meinst du was die exe benötigt?
die exe braucht nun das File was es in der Liste von data zugewiesen bekommt. und dieses File liegt in einem anderen Ordner.
Den ordner hab ich unter Path deklariert.
ist die angabe so richtig?oder muss erst data und dann path? spielt das überhaupt eine rolle? Oder ist diese zuweisung von vornherein verkehrt?
Code: Alles auswählen
for data in filenames:
subprocess.call(["D:\\Test\test.exe", path, data])
Re: .bat mit Listeninhalt ausführen
Verfasst: Donnerstag 7. Juni 2012, 10:53
von Hyperion
OttoPython hat geschrieben:meinst du was die exe benötigt?
ja!
OttoPython hat geschrieben:
die exe braucht nun das File was es in der Liste von data zugewiesen bekommt.
Offenbar braucht das Programm eben mehr, nämlich *zwei* Parameter! Wie ich nun schon gefühlte zig tausend Mal schrieb, musst Du doch erst einmal wissen, wie man das Programm *ohne* Python korrekt aufruft. Danach kannst Du dann überlegen, wie Du welche Info mittels Python und `subprocess` übergibst.
Dieses `path` sehe ich jetzt zum ersten Mal - wenn das fix ist, klappt es ja nun vielleicht auch.
Du solltest Pfadangaben immer als Raw-String angeben:
Damit vermeidest Du Probleme durch Escape-Sequenzen des Backslashs.
Re: .bat mit Listeninhalt ausführen
Verfasst: Donnerstag 7. Juni 2012, 11:14
von OttoPython
ja gut dass hatte ich vor deinem whhooooza geschrieben, dass die exe auf ein file zugreift, dass in einem andren Verzeichnis liegt.
Missverständnis beiderseits. Tut mir leid. Aber ich habe jetz bemerkt, dass mir ursprüunglich nur die Eckklammern im python skrippt gefehlt haben. Da ich mir gedacht hatte , dass mein ansatz dabei verkehrt sei.
Nun funktioniert es wie es soll. Vielen Dank dafür und für deine Geduld mit mir
Wie kann ich mir eine Rückgabe geben lassen, welches File gerade bearbeitet wird? stdout= ?? welchen Befehl oder gibt es eine andere möglichkeit?
Re: .bat mit Listeninhalt ausführen
Verfasst: Donnerstag 7. Juni 2012, 11:33
von Hyperion
"Nur die Eckklammern" klingt banal - Dir ist hoffentlich klar, was sie bedeuten und dass das semantisch einen *großen* Unterschied macht?
Du müsstest nicht `subprocess.call`, sondern eine andere Funktion benutzen; etwa `subprocess.check_output`.