Hallo,
wie kann man am einfachsten eine Bat-Datei ausführen aus einem Python Skript heraus?
Danke!
MfG
Bat Datei ausführen...
Am "einfachsten" wohl mit:
Zwar nicht schön (weil Eingabeaufforderung mit geöffnet wird), aber einfach ist es allemal *hehehe*.
>>Masaru<<
Code: Alles auswählen
import os
os.system(r'c:\pfad_zu_meiner_batch_datei.bat')
>>Masaru<<
- Sr4l
- User
- Beiträge: 1091
- Registriert: Donnerstag 28. Dezember 2006, 20:02
- Wohnort: Kassel
- Kontaktdaten:
Code: Alles auswählen
>>> import webbrowser
>>> webbrowser.open("http://www.google.de")
True
*edit*
bei der Antwort musste ich gerade an das denken:
http://www.python-forum.de/topic-12810.html
Zuletzt geändert von Sr4l am Mittwoch 30. April 2008, 18:55, insgesamt 1-mal geändert.
Also wenn ich in eine Batch Datei (oder direkt mittels os.system) folgendes ausführen lasse:
(Browserpfad ist natürlich Installationsabhängig), dann geht das relativ einfach *schulterzuck*.
Meinst du sowas? Oder eine Lösung wie von Sr4l vorschlagen (mit dem webbrowser Modul)?
Code: Alles auswählen
"c:\_PROGRAMME_\Mozilla Firefox 2\firefox.exe" www.wow-europe.de
(Browserpfad ist natürlich Installationsabhängig), dann geht das relativ einfach *schulterzuck*.
Meinst du sowas? Oder eine Lösung wie von Sr4l vorschlagen (mit dem webbrowser Modul)?
Zuletzt geändert von Masaru am Mittwoch 30. April 2008, 18:53, insgesamt 1-mal geändert.
Machbar ... aber schwierig.
Das ist dann ganz und gar nicht mehr einfach, da man für solche eine Aktion:
Das ist dann ganz und gar nicht mehr einfach, da man für solche eine Aktion:
- a) die pywin32 extention library unter Anwendung von win32 Techniken zur Ermittlung des Handles des Browserfenster und anschliessendem win32gui.CloseWindow Aufruf nutzen sollte (verdammt kompliziert, wenn man davon keine Ahnung hat)
oder
b) sich eine Windows-Variante des "kill" commands besorgt (z.B. PsKill) und dann den Prozess (PsKill executable wieder mittels os.system oder subprocess.Popen aufgerufen) so richtig brutal abschiesst ... die Process-ID holt man sich, indem man den Browser manuell (nicht über das webbrowser modul) mittels os.spawnl startet
so, hab mir nun das ganze selbst gebastelt... für alle die es interessiert:
Vllt. wäre es auch einfacher gegangen, aber so geht es^^
Code: Alles auswählen
pipe = subprocess.Popen(["tasklist.exe"], shell=False, stdout=subprocess.PIPE).stdout
string = pipe.readlines()
for x in string:
a = re.compile("firefox.exe")
b = a.match(x)
if b:
a = re.compile("[0-9]+")
b = a.findall(x)
subprocess.Popen("tskill %s" %b[0])
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Ja, einfacher als mit Regulären Ausrücken bestimmt. Zudem ``firefox.exe`` auch ``firefoxDexe`` matcht, denn der Punkt steht nicht für den literalen Punkt sondern für jedes beliebige Zeichen.SchneiderWeisse hat geschrieben:Vllt. wäre es auch einfacher gegangen, aber so geht es^^
Zuletzt geändert von Leonidas am Donnerstag 1. Mai 2008, 09:23, insgesamt 1-mal geändert.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Das "killen" von Prozessen ist nie wirklich schön ... *hust* geschweige denn immer gesund für eine Anwendung (und evenuelle zu persistenzierende Daten dahinter).
Wenn, würde ich weiterhin eine Abwicklung mittels win32gui.CloseWindow(handle) versuchen anzugehen.
>>Masaru<<
Wenn, würde ich weiterhin eine Abwicklung mittels win32gui.CloseWindow(handle) versuchen anzugehen.
>>Masaru<<
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hallo!
...und ich würde mal darüber nachdenken, ob es unbedingt notwendig ist, den Browser über das Programm wieder zu schließen.
mfg
Gerold
...und ich würde mal darüber nachdenken, ob es unbedingt notwendig ist, den Browser über das Programm wieder zu schließen.
mfg
Gerold
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Zumal ich mir auch vorstellen könnte, dass man es einrichten kann, dass beim "Start" einer Webseite in einem schon vorhandenen Browserfenster einfach ein neuer Tab aufgemacht wird. Dann am Ende den ganzen Browser killen zu wollen, könnte den Benutzer doch sehr stark nerven.
Vielleicht wäre das hier noch etwas für Dich: http://www.tizmoi.net/watsup/intro.html
Schau Dir einmal Example 3 an.
MfG
HWK
Schau Dir einmal Example 3 an.
MfG
HWK