Hallo,
bekommt man das über Python hin, dass man den
Default Bilderbrowser starten kann und einen
Startordner übergeben kann?
Hintergrund ist, dass ich einen Flash-Projektor habe
und von dem aus soll nun der Default-Bilderbrowser
aufgerufen werden. Das funktioniert aber so nicht.
Deshalb bräuchte ich eine Anwendung (EXE), die
das erledigt und diese EXE kann ich dann im
Flash-Projektor aufrufen.
Danke.
default bilderbrowser des systems öffnen
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Seit wann gibt es sowas? Wo kann man denn den Default Bilderbrowser einstellen?MaticPeel hat geschrieben:Default Bilderbrowser starten kann und einen
Startordner übergeben kann?
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Na wenn man mit DoppelKlick ein Bild auswählt öffnet sich doch ein Programm, wie "Bild und Faxanzeige", Xnview, ACDSee oder was auch immer. (Wenn man dies eingstellt hat)
Gibt es da nun die Möglichkeit das Programm X (Bild und Faxanzeige, Xnview, ACDSee,....) zu starten und ihm das Bild Y (bla.jpg) zu übergeben?
Gibt es da nun die Möglichkeit das Programm X (Bild und Faxanzeige, Xnview, ACDSee,....) zu starten und ihm das Bild Y (bla.jpg) zu übergeben?
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Es gibt keinen Default-Bilderbrowser. Es gibt nur ein Programm welches mit einem bestimmten Dateityp verknüpft ist. So kann IrfanView JPEGs öffnen, XNVIew PNGs und ACDSee TIFFs. Welches ist nun der Default-Bilderbrowser?MaticPeel hat geschrieben:Na wenn man mit DoppelKlick ein Bild auswählt öffnet sich doch ein Programm, wie "Bild und Faxanzeige", Xnview, ACDSee oder was auch immer. (Wenn man dies eingstellt hat)
Eventuell ``os.startfile()``, das startet das mit dem Dateiformat verknüpfte Programm. Funktioniert aber nur unter Windows, unter anderen Systemen macht das auch keinen Sinn.MaticPeel hat geschrieben:Gibt es da nun die Möglichkeit das Programm X (Bild und Faxanzeige, Xnview, ACDSee,....) zu starten und ihm das Bild Y (bla.jpg) zu übergeben?
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Mit Default-Bilderbrowser ist ja auch nicht gemeint, dass es DER default-Bilderbrowser auf allen Systemen ist. Sondern: Wenn ich einmal eingestellt habe, dass bei mir Bilder mit XnView geöffnet werden sollen, dass ist das bei mir der Default-Bilderbrowser.Leonidas hat geschrieben:Es gibt keinen Default-Bilderbrowser. Es gibt nur ein Programm welches mit einem bestimmten Dateityp verknüpft ist. So kann IrfanView JPEGs öffnen, XNVIew PNGs und ACDSee TIFFs. Welches ist nun der Default-Bilderbrowser?
Und Default-Bildbrowser ist für mich das Programm, dass sich öffnet wenn ich per doppelklick auf eine Bilddatei klicke ohne vorher noch ein Programm auszuwählen.
Ich weiß selbst, dass das alles etwas schräg ist, aber das wird gewünscht und nun versuche ich eine Lösung dafür zu finden....
Soll ja auch nur Plattformbezogen sein, deshalb auch "Anwendung (EXE)"MaticPeel hat geschrieben: Eventuell ``os.startfile()``, das startet das mit dem Dateiformat verknüpfte Programm. Funktioniert aber nur unter Windows, unter anderen Systemen macht das auch keinen Sinn.
Danke für den Tipp
Code: Alles auswählen
import tkFileDialog
import os
f = tkFileDialog.askopenfilename()
type(f)
os.startfile(f)
schau dir mal dinge wie os.listdir und os.isfile an, damit muesstest du das hinbekommen (ich uebernehme keine garantie dafuer, dass es die elegeganteste moegliche loesung ist)So öffnet er ja schon mal das. Nun muss ich nur noch herausfinden, wie man die erste Datei in einem Verzeichnis auslesen kann. Also Ziel ist es ja dann, dass man nicht eine Datei übergibt, sondern das es ein fest definiertes Verzeichnis gibt und dort wird das erste Bild aufgerufen.
da wirst du grosse probleme bekommen, wenn du mit python arbeitest, da hier eigentlich nur .py-Dateien erstellt werden, die dann erst beim aufruf von python.exe interpretiert werden (--> keine .exe )Soll ja auch nur Plattformbezogen sein, deshalb auch "Anwendung (EXE)"
ansonsten kannst du (falls du nichts eleganteres findest) mit os.system zeichenketten uebergeben, die du normalerweise in die konsole schreiben wuerdest ... unter windowskannst du die parameter dann meistens mit einem freizeichen dazwischen angeben
damit muesste dein problem zu loesen sein, glaube ich
viel spass
Habs nun
Und daraus mit py2exe die EXE und die kann ich in Flash aufrufen und
er macht das was er soll.
Vielen Dank für die schnelle Hilfe.
Code: Alles auswählen
import os
ordner = "test"
datei = os.listdir(ordner)
abs = os.path.abspath(ordner)+"\\"+datei[0]
os.startfile(abs)
er macht das was er soll.
Vielen Dank für die schnelle Hilfe.
empfehlung: schau dir doch mal os.path.join an ....MaticPeel hat geschrieben:Habs nun
Und daraus mit py2exe die EXE und die kann ich in Flash aufrufen undCode: Alles auswählen
import os ordner = "test" datei = os.listdir(ordner) abs = os.path.abspath(ordner)+"\"+datei[0] os.startfile(abs)
er macht das was er soll.
Vielen Dank für die schnelle Hilfe.
und uebrigens mit pz2exe wird das Teil riesig ...
uebrigens solltest du mit flash schon andere Programme oeffnen koennen (habe nur kury gegooglet und was mit fscommand und exec gefunden, kenne mich aber mit flash kaum aus, ist nur als hinweis gedacht)
Zuletzt geändert von cime am Mittwoch 14. Februar 2007, 14:40, insgesamt 1-mal geändert.
Hi MaticPeel.
Verwende lieber ``os.path.join``.
Und noch was keine builtins überschreiben. ``abs`` ist ein builtin.
lg
Verwende lieber ``os.path.join``.
Das verwendet den ``os.sep`` was unter *unixen ein / und unter Windows ein \ ist. Damit kriegst du einen sauberen Pfad hin unter beiden Betriebssystemen. Mit deinem Code würde das Ergebnis unter Linux z.B. so aussehen: /dein-pfad\deine-datei anstatt /dein-pfad/deine-dateijoin( path1[, path2[, ...]])
Join one or more path components intelligently. If any component is an absolute path, all previous components (on Windows, including the previous drive letter, if there was one) are thrown away, and joining continues. The return value is the concatenation of path1, and optionally path2, etc., with exactly one directory separator (os.sep) inserted between components, unless path2 is empty. Note that on Windows, since there is a current directory for each drive, os.path.join("c:", "foo") represents a path relative to the current directory on drive C: (c:foo), not c:\\foo.
Code: Alles auswählen
[...]
path = os.path.join(os.path.abspath(ordner), datei[0])
[...]
Code: Alles auswählen
print 'abs' in dir(__builtins__) # = True
Hab ich auch bemerkt, aber ist in dem Fall nicht so schlimm.cime hat geschrieben:uund uebrigens mit pz2exe wird das Teil rieig ...
Gibt es da auch noch andere Möglichkeiten eine EXE zu erhalten?
Ja. Aber du kannst nur EXE-Dateien öffnen, die in einem Ordner fscommand liegen und dieser muss im gleichen Ordner liegen wie der Projektor. Also liegt nun das kleine Python-Programm in dem fscommand-Ordner und erledigt die Arbeit. Während dies von Flash aufgerufen wird.cime hat geschrieben:uebrigens solltest du mit flash schon andere Programme oeffnen koennen (habe nur kury gegooglet und was mit fscommand und exec gefunden, kenne mich aber mit flash kaum aus, ist nur als hinweis gedacht)
Ok. Danke.sape hat geschrieben:Verwende lieber ``os.path.join``.
Wusste nicht das abs schon vergeben ist. Hatte das nur auf die schnell Probiert und in Eclipse wurde abs nicht als Schlüsselwort angezeigt, so dass ich das gar nicht bemerkt hatte.
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
PyInstaller und cx_Freeze, aber großartig kleiner wirds nicht werden. Einen native-Code-Compiler gibt es für Python nämlich nicht.MaticPeel hat geschrieben:Hab ich auch bemerkt, aber ist in dem Fall nicht so schlimm.cime hat geschrieben:uund uebrigens mit pz2exe wird das Teil rieig ...
Gibt es da auch noch andere Möglichkeiten eine EXE zu erhalten?
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Cime, was du noch nachträglich probieren kannst ist, das Ganze mit upx zu verkleinern. Aber erwarte kein Wunder. Besonders wenn du wxPython Programme mit py2exe in ein exe erzeugst und die mit upx verkleinerst, sind die Ergebnisse nicht besonders berauschend.
oho kenn ich noch nicht, thx , die frage ist halt wieviel es bringt ...sape hat geschrieben:Cime, was du noch nachträglich probieren kannst ist, das Ganze mit upx zu verkleinern. Aber erwarte kein Wunder. Besonders wenn du wxPython Programme mit py2exe in ein exe erzeugst und die mit upx verkleinerst, sind die Ergebnisse nicht besonders berauschend.
PS: wegen der Rechtschreibung in meinem letzten Post: mein comp @home ist im moment nicht gerade übermäßig funktionstüchtig und akzeptiert nur englische tastatur
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Hab gerade was nettes gefunden: http://aspn.activestate.com/ASPN/Cookbo ... ipe/511443
Mit dem implementieren "open" kann man dabei eine beliebige Datei mit dem default Programm öffnen lassen und das ganze ist Platform unabhängig:
Mit dem implementieren "open" kann man dabei eine beliebige Datei mit dem default Programm öffnen lassen und das ganze ist Platform unabhängig:
'start' for win32, 'open' for OSX and gnome-open, kfmclient and exo-open respectively for the GNOME, KDE and XFCE desktop environment. As a fallback solution xdg-open (if available) and webbrowser.open are used.