Es gibt ja die Möglichkeit z.B. eine Desktopverknüpfung
von einem Programm zu erstellen und unter Eigenschaften bei "Ziel"
noch ein zusätzliches Argument oder Parameter zu übergeben.
z.b. "C:\Program Files\Test\test.exe"script.py
...bedeutet dass das script in dem programm gestartet wird...
...nun habe ich mehrere scripte die ich mit diesem programm öffnen
will...
mit welcher lib oder befehl kann ich ein argument übergeben?
programm öffnen kann man ja entweder mit:
os.popen oder
subprocess.Popen ...
Executable mit Argument öffnen...
ach mist war ja ganz einfach:
Code: Alles auswählen
os.popen("test.exe script.py")
- cofi
- Python-Forum Veteran
- Beiträge: 4432
- Registriert: Sonntag 30. März 2008, 04:16
- Wohnort: RGFybXN0YWR0
Benutz subprucess.Popen und übergebe die Argumente als Liste.
Code: Alles auswählen
subprocess.Popen(["test.exe", "script.py"])
Hi...ich schreib mein Problem mal hier rein weil es dazu passt.
Ich habe ähnlich wie oben beschrieben ein skript gestartet.
Jetzt habe ich nur das Problem das ich dem python skript noch argumente mitgeben muss, damit es läuft.
Ein argument kann z.B. so aussehen
kan mir irgendwer sagen wie ich das schreiben muss, damit ich das so übergeben kann?
Ich habe ähnlich wie oben beschrieben ein skript gestartet.
Code: Alles auswählen
subprocess.Popen(["C:\python\python.exe", "D:\createObject_OE.py"])
Ein argument kann z.B. so aussehen
Code: Alles auswählen
classname=Beispielklassenname
- cofi
- Python-Forum Veteran
- Beiträge: 4432
- Registriert: Sonntag 30. März 2008, 04:16
- Wohnort: RGFybXN0YWR0
Genau so, wie du auch den Pfad zum Modul angibst: Als String, angehängt an subprocess.Popen.
Code: Alles auswählen
subprocess.Popen(["C:\python\python.exe", "D:\createObject_OE.py", "classname=Beispielklassenname"])
Bei Backslashes solltest du Raw-Strings verwenden. Bestimmte Kombinationen von Backslashes und Zeichen stehen für Escapesequenzen. So steht '\n' nicht für \n, sondern für einen Zeilenumbruch. Folgendes wäre also mit aller Wahrscheinlichkeit ein ungültiger Dateiname:
"C:\Programme\netbeans"
"C:\Programme\netbeans"
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
Wobei man ein Python-Programm ja evtl. besser direkt in sein eigenes Script integriert, oder? Ich meine ein "Umweg" über Subprocess ist doch vermutlich nur in Ausnahmesituationen geeigneter ...
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
Also wenn das Programm sogar von Dir selber stammt, sehe ich ja nach der kurzen Beschreibung noch weniger Grund das so zu machen! Mal ganz davon abgesehen, dass es spezielle Testmodule für Python gibt, kann man sich doch extrem simpel eine kleine Funktion schreiben, die das Modul importiert und entsprechend "nutzt".DjFresH hat geschrieben:...kommt wohl darauf an für was man es benutzt,
ich hab das für eine testreihe gebraucht um die funktionalität
meines programms zu testen...
Oder ging es Dir "nur" um den Kommandozeilenparameter?