HuHu...
was ist die sauberste Lösung um eine Datei (pdf) mit dem Standard-Programm der Laufzeitumgebung zu öffnen? Gibt es da was Plattformübergreifendes in Python oder muss ich da auf Windows (Zielplattform) Mittel gehen?
Danke schon mal
D
Datei mit Standart-Programm öffnen
- Rebecca
- User
- Beiträge: 1662
- Registriert: Freitag 3. Februar 2006, 12:28
- Wohnort: DN, Heimat: HB
- Kontaktdaten:
Da es unter Linux nicht wirklich Standardanwendungen gibt, kann Python da auch nichts plattformuebergreifendes fuer bereitstellen. Unter Windows sollte os.startfile das sein, was du suchst.
Offizielles Python-Tutorial (Deutsche Version)
Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
- Rebecca
- User
- Beiträge: 1662
- Registriert: Freitag 3. Februar 2006, 12:28
- Wohnort: DN, Heimat: HB
- Kontaktdaten:
Soweit ich weiss, speichern Gnome und KDE (und eventuell noch einige andere Desktop-Manager) sich Infos ueber Standardanwendungen ab, aber natuerlich jeder auf seine Weise. Es ist also nicht dein Linux, was das "weiß", sondern dein Desktop-Manager.n4p hat geschrieben:Nur interessehalber.
Ich benutze auf meinem Laptop Ubuntu und das "weiß" auch, mit welchem Programm ich bei einem Doppelklick eine Datei öffnen will. Sollte es somit nicht auch möglich sein das aus Python zu starten?
Was recht weit verbreitet ist, sind die Umgebungsvariablen $BROWSER und $EDITOR. Erstere wird von webbrowser.open unter Linux verwendet.
PS: Gerade mal xdg-open verwendet. Es ignoriert anscheinend die einzige Moeglichkeit, meinen Lieblingsbrowser und -Editor herauszufinden: Die oben genannten Umgebungsvariablen...
Nachtrag: Viele Programme (unter Linux zumindest), die auf externe Programme zum Ansehen/Bearbeiten von Dateien zurueckgreifen, lassen den Benutzer diese jeweils einstellen, was mir persoenlich sehr gut gefaellt.
Offizielles Python-Tutorial (Deutsche Version)
Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
Die Startskripte deiner Desktop-Sitzung werden mit einer Login-Shell ausgeführt, die unter der UID des Nutzers läuft und ergo auch die Konfigurationsdateien aus ~ ausliest. Nur liest eine nicht-interaktive Shell nicht alle Dateien. Die bash beispielsweise ignoriert beim nicht-interaktiven Start die .bashrc.str1442 hat geschrieben:Umgebungsvariablen werden ja auch von der Shell beim Starten eben jener deklariert, der Desktop Manager kann ja nicht raten welche das ist und dann per Shellzugriff sich den Inhalt holen.
Aus diesem Grund definiert man solche Variablen in auch in der "~/.profile" (bei der bash) oder der "~/.zprofile" (oder auch "~/.zshenv"). Natürlich müssen sie auch exportiert werden, sonst sind sie nur für den aktuellen Shell-Prozess sichtbar.
@Rebecca
xdg-open ist ziemlich simpel gestrickt. Es versucht, die aktuelle Desktop-Umgebung herauszufinden. Unter KDE, Gnome und XFCE ruft das Skript dann einfach das jeweilige Tool zum Öffnen auf, also "kfmclient", "exo-open" oder "gnome-open". Erkennt es die Desktopumgebung nicht, macht es nichts sonderlich komplexes:
Es wertet immer $BROWSER aus, und wenn $BROWSER nicht gesetzt ist, prüft es "firefox", "mozilla" und "netscape".
Ich weiß nicht, welche Desktopumgebung du nutzt. Ich meine allerdings, mich zu erinnern, dass du fvwm nutzt. In diesem Fall wäre also $BROWSER bei dir falsch gesetzt.
Imho ist es auch ganz ok, dass $EDITOR ignoriert wird. Das Skript ist zum Öffnen da, nicht zum Editieren. Woher sollte das Skript auch wissen, ob ich eine HTML-Datei mit Firefox jetzt anzeigen (öffnen) oder mit Emacs editieren möchte.
Zum Bearbeiten einer Datei starte ich den Editor manuell, und Programme, die Dateien im Editor bearbeiten lassen, werten $EDITOR eh selbstständig aus.
Ok, das wäre natürlich auch eine Möglichkeit. Nehmen wir also an ich habe eine Datei (pdf) und Frage den benutzer mit welchem Programm er sie öffnen will. Wie öffne ich denn dann die Datei mit dem ausgewählten Programm so, das es auf allen Plattformen funktioniert?Rebecca hat geschrieben:Viele Programme (unter Linux zumindest), die auf externe Programme zum Ansehen/Bearbeiten von Dateien zurueckgreifen, lassen den Benutzer diese jeweils einstellen...
- veers
- User
- Beiträge: 1219
- Registriert: Mittwoch 28. Februar 2007, 20:01
- Wohnort: Zürich (CH)
- Kontaktdaten:
http://29a.ch/git/gitweb.cgi?p=lanshark ... =HEAD#l203
http://29a.ch/git/gitweb.cgi?p=lanshark ... b=HEAD#l48
http://29a.ch/git/gitweb.cgi?p=lanshark ... =HEAD#l128
Das herausbauen sei dir nun selber überlassen
Und Rebecca,
xdg-open sehe ich primär mal als Interface an. Wenn das deine Umgebung nicht unterstützt - passe es an oder lebe ohne dieses Feature. xdg-open löst das Problem für mindestens 90% der Benutzer. Und der Rest müsste wissen was er tut
http://29a.ch/git/gitweb.cgi?p=lanshark ... b=HEAD#l48
http://29a.ch/git/gitweb.cgi?p=lanshark ... =HEAD#l128
Das herausbauen sei dir nun selber überlassen
Und Rebecca,
xdg-open sehe ich primär mal als Interface an. Wenn das deine Umgebung nicht unterstützt - passe es an oder lebe ohne dieses Feature. xdg-open löst das Problem für mindestens 90% der Benutzer. Und der Rest müsste wissen was er tut
[url=http://29a.ch/]My Website - 29a.ch[/url]
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann