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
.bat mit Listeninhalt ausführen
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
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.
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
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
assert encoding_kapiert
- OttoPython
- User
- Beiträge: 47
- Registriert: Montag 23. April 2012, 14:14
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?
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])"Im Burnout steckt viel Arbeit drin" -Lysander
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
ja!OttoPython hat geschrieben:meinst du was die exe benötigt?
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.OttoPython hat geschrieben: die exe braucht nun das File was es in der Liste von data zugewiesen bekommt.
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:
Code: Alles auswählen
r"D:\\..."
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
assert encoding_kapiert
- OttoPython
- User
- Beiträge: 47
- Registriert: Montag 23. April 2012, 14:14
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?
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?
"Im Burnout steckt viel Arbeit drin" -Lysander
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
"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`.
Du müsstest nicht `subprocess.call`, sondern eine andere Funktion benutzen; etwa `subprocess.check_output`.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
assert encoding_kapiert
