Frage zu Ausführen Batchdatei mit os.system()

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
pereh
User
Beiträge: 3
Registriert: Donnerstag 6. April 2006, 15:47

Donnerstag 6. April 2006, 16:05

Hallo, ich kenne Python bisher nur aus dem Lesen der Doku, jetzt habe ich mit meinem 1. Programm ein Problem: das Script läuft unter Win2003, soll u.a. eine Batchdatei ausführen (Testprog.bat), auf deren Ende warten und einen Rcode liefern. Der Aufruf os.system('<pfad>\Testprog.bat') scheint aber keine Auswirkung zu haben, das Script läuft darüber weg, das Batchfile wird aber nicht ausgeführt. Wo könnte da der Haken sein?
N317V
User
Beiträge: 504
Registriert: Freitag 8. April 2005, 13:23
Wohnort: München

Donnerstag 6. April 2006, 16:16

So spontan fällt mir ein: versuch mal sämtliche Backslashes im Pfad per Backslash zu maskieren, also \\ statt \
Es gibt für alles eine rationale Erklärung.
Außerdem gibt es eine irrationale.

Wie man Fragen richtig stellt
Python 47
User
Beiträge: 574
Registriert: Samstag 17. September 2005, 21:04

Donnerstag 6. April 2006, 16:20

Daran dürfte es nicht liegen, da Python mit dem befehl os.sytem() cmd anspricht und cmd nur ein \ verwendet!
mfg

Thomas :-)
pereh
User
Beiträge: 3
Registriert: Donnerstag 6. April 2006, 15:47

Donnerstag 6. April 2006, 16:27

Hallo, danke für die schnelle Antwort. Leider hat es nicht funktioniert. Das Batchfile enthält übrigens bisher nur 'mkdir test', also nichts schweres...
BlackJack

Donnerstag 6. April 2006, 22:26

Python Master 47 hat geschrieben:Daran dürfte es nicht liegen, da Python mit dem befehl os.sytem() cmd anspricht und cmd nur ein \ verwendet!
:roll:

Der \ hat in Python-Zeichenketten eine besondere Bedeutung. '\n' ist zum Beispiel ein Zeilenende-Zeichen. Wenn Du wirklich einen Backslash gefolgt von einem 'n' als Zeichenkette im Programm angeben willst, dann musst Du '\\n' schreiben.
pereh
User
Beiträge: 3
Registriert: Donnerstag 6. April 2006, 15:47

Freitag 7. April 2006, 11:34

Hallo, ich habe jetzt den Aufruf inkl. Pfad als Eingabevariable gesetzt und schon funktioniert der os.system-Aufruf... Wahrscheinlich wird mir der Fehler klarar, wenn ich mal mehr Python kann. Vielen Dankfür die Hilfe.
Antworten