Programme für Dateierweiterungen unter Windows herausfinden

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
Benutzeravatar
limepix
User
Beiträge: 37
Registriert: Dienstag 11. November 2008, 16:54

Folgendes - es soll ein taskplaner nachgebaut werden und der nimmt auch langsam Form an...
Wir wollen für das Ausführen von bestimmten Tasks uns nun allerdings nicht auf bestimmte Dateitypen festlegen...
ein kleines Beispiel:

Code: Alles auswählen

        <exec>window.pyw</exec>
        <args></args>
das könnte nun einfach ein weiteres python Skript sein welches ausgeführt wird...

weiter:

Code: Alles auswählen

        <exec>tool.exe</exec>
        <args>-T Argument -P Argument</args>
das nun eine Executable ...

Code: Alles auswählen

        <exec>temp.txt</exec>
        <args></args>
und das eine Textdatei die einfach geöffnet wird.

In unserem Taskplaner wird nun "exec" und "args" herausgelesen und wir wollen das dann ausführen...
von dem befehl os.system(...) wurde mir dringendst abgeraten - ich hab mich dann mal ein bisschen in das modul subprocess eingelesen und bin dort auf Popen gestossen... so weit so gut...
wenn ich jetzt einen aufruf mach der folgendermaßen aussieht:

Code: Alles auswählen

p = subprocess.Popen('tool.exe ' + '-T Argument -P Argument')
klappt das auch! allerdings wenn ich so ein weiteres python skript aufrufen möchte, muss ich es wie folgt machen:

Code: Alles auswählen

p = subprocess.Popen('python ' + 'window.pyw ')
... bei der textdatei dann halt anstatt 'python' ein 'np++' vorne dran...
meine frage ist nun wie ich die zuordnung von dateitypen(/-endungen) zu den programmen rausbekomm. quasi
'.pyw' -> 'C:\Python26\python.exe',
'.txt' -> 'C:\Programme\np++\np++.exe'
usw...

im explodierer findet mans unter "Extras" - "Ordneroptionen" -
"Dateitypen".

Ich hab in der Registry schon mal mit dem suchen begonnen, allerdings ohne erfolg :-(
vielleicht kann mir von euch einer sagen, wie ich diese zuordnungen einfach und schnell ermitteln kann ??

danke schon mal im vorraus
ich freu mich über jegliche antworten

mfg limepix[/quote]
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

limepix hat geschrieben:vielleicht kann mir von euch einer sagen, wie ich diese zuordnungen einfach und schnell ermitteln kann
Hallo limepix!

Schau' dir die wxPython-Demo an. Suche dort nach "MimeTypesManager". Damit bekommst du alle Informationen (plattformübergreifend).

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

Zum einen solltest du dir mal os.startfile anschauen. Zum anderen sollte es statt

Code: Alles auswählen

p = subprocess.Popen('tool.exe ' + '-T Argument -P Argument')
heissen:

Code: Alles auswählen

p = subprocess.Popen(["tool.exe", "-T", "bla", "-P", "blupp"])
Dann ist das Quoting immer korrekt.
Offizielles Python-Tutorial (Deutsche Version)

Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
Benutzeravatar
limepix
User
Beiträge: 37
Registriert: Dienstag 11. November 2008, 16:54

*begeisterüberschnelleantwortsei*

danke schonmal!

@Rebecca: Werde ich berücksichtigen und gleich einbauen! Danke!

@Gerold: Super! Genau was ich gesucht habe!! Was mir persönlich allerdings besser gefallen würde, wenn es auch ohne wx geht... Funzt das auch mit der der stdlib?? (Wenn nicht, halb so wild...)
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

limepix hat geschrieben:Funzt das auch mit der der stdlib?
Hallo limepix!

Ein paar Informationen bekommst du auch mit dem mimetypes-Modul heraus.

http://docs.python.org/library/mimetypes.html

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Antworten