Wie kann ich in Python Systemdaten abfangen?

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.
Benutzeravatar
dodo
User
Beiträge: 73
Registriert: Mittwoch 10. November 2010, 13:43

Ich möchte ein Programm schreiben, was man direkt bei der Datei mit 'Öffnen mit' starten kann.

Kann mir da jemand helfen?
Grüße schon im Voraus, euer 'dodo'
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

dodo hat geschrieben:Ich möchte ein Programm schreiben, was man direkt bei der Datei mit 'Öffnen mit' starten kann.
Kapiere ich nicht! Kannst Du das mal bitte genauer erklären! (Was für ein OS, woher stammt der Aufruf, was soll das bewirken, ...?)
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Benutzeravatar
dodo
User
Beiträge: 73
Registriert: Mittwoch 10. November 2010, 13:43

Ich dachte, das man das kapiert...
Aber nagut:
Ich möchte ein Programm machen, was man per Rechtsklick unter 'Öffnen mit' auswählen kann, und da Programm die Datei öffnet.
Und ich weiß nich wie das geht, drum frag ich ja.
Geht nicht gibts nicht(Das gilt auch für Python)!
Benutzeravatar
dodo
User
Beiträge: 73
Registriert: Mittwoch 10. November 2010, 13:43

Ach ja, und das soll man mit Mac, Linux und Windows funktionieren.
Und mehr mag ich nich verraten, wegen Ideenklau :wink:
Geht nicht gibts nicht(Das gilt auch für Python)!
Xynon1
User
Beiträge: 1267
Registriert: Mittwoch 15. September 2010, 14:22

Bleibt die Frage "Was für ein OS"

Aber jemand der diese Frage nicht beantworten kann, nutzt höchst warscheinlich Windows. :|

Das Öffnen mit, unter Windows wird von Windows selbst verwaltet und enhält lediglich verknüpfungen auf Programme, wenn du dort ein Programm rein packen willst, kannst du das gerne machen.

Edit: Ich kenn keine "Öffnen mit" Funktion in einer Linux-Distribution, bei Mac weiß ich es nicht.

Dein Script muss nur ein Datei als Parameter erwarten, dann ist das kein Problem.
Zuletzt geändert von Xynon1 am Mittwoch 10. November 2010, 14:23, insgesamt 1-mal geändert.
Traue keinem Computer, den du nicht aus dem Fenster werfen kannst.
Xynon auf GitHub
Benutzeravatar
dodo
User
Beiträge: 73
Registriert: Mittwoch 10. November 2010, 13:43

Dann muss ichs wohl für alle einzeln programmieren :cry: ich meine für alle Betriebssysteme...
Fangen wir mit Windows an.(Wenn das Betriebssystem mit 'OS' gemeint war...)
Geht nicht gibts nicht(Das gilt auch für Python)!
Xynon1
User
Beiträge: 1267
Registriert: Mittwoch 15. September 2010, 14:22

Es wäre schön zuwissen was das überhaupt für ein murks wird ?
Wenn du es also mal etwas detailierter ausführen könntest.
Traue keinem Computer, den du nicht aus dem Fenster werfen kannst.
Xynon auf GitHub
Benutzeravatar
dodo
User
Beiträge: 73
Registriert: Mittwoch 10. November 2010, 13:43

Nagut...
Es soll ein eigenes 'Betriebssystem' auf einem Betriebssystem sein. Man soll Dokumente des virtuellen Betriebssystems direkt über rechtsklick öffnen können, wobei dies gestartet wird, und das Dokument dort gleich geöffnet wird.
Ich versuchs mit Pygame.
Geht nicht gibts nicht(Das gilt auch für Python)!
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

dodo hat geschrieben:Nagut...
Es soll ein eigenes 'Betriebssystem' auf einem Betriebssystem sein. Man soll Dokumente die virtuellen Betriebssystems direkt über rechtsklick öffnen können, wobei dies gestartet wird, und das Dokument dort gleich geöffnet wird.
Ich versuchs mit Pygame.
Ich kapiere wieder nichts! :twisted:

@dodo: Du kannst innerhalb eines Python-Programms Parameter abfragen, die beim Start übergeben wurden. Manuell greift man dabei auf sys.args zurück. Allerdings gibt es dafür auch hübsche Module, wie etwa argparse (ab Python 2.7 an Bord) oder optparse.

Wobei ich mich dann doch frage: Jemand, der solche Fragen wie Du stellt, ist imho für pygame noch nicht wirklich bereit. Arbeite zunächst doch mal das Tutorial durch und erlerne die Grundlagen. Dabei klären sich dann auch viele triviale Fragen Deinerseits.

Ansonsten guck auch mal hier ins wiki:
wiki.python-forum.de

Dort finden sich auch viele Infos rund um das Thema Python; u.a. werden auch Dinge wie "wie starte ich Scripts" behandelt.

Zum Thema "Öffnen mit": Du willst also einem Dateitypen ein Python-Script zuweisen, welches gestartet werden soll und dem dann "automatisch" das gewählte Dokument übergeben wird? Das sollte einfach mit oben genannten Mitteln gehen. Allerdings sind die Einstellungen des "Öffnen mit" ja vom jeweiligen OS / Desktop abhängig. Insofern muss Dein Script nur die Möglichkeit bieten, einen Dateinamen beim Start übergeben zu bekommen.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Benutzeravatar
dodo
User
Beiträge: 73
Registriert: Mittwoch 10. November 2010, 13:43

Ich kenn die Grundlagen: print, Variablen, Funktionen, Klassen, Objekte, Module...
Und ich kenn mich auch mit nen paar Modulen aus:easygui, pygame(Teils, Lern auf der Homepage zurzeit)
:evil: :evil: :evil:
Geht nicht gibts nicht(Das gilt auch für Python)!
Benutzeravatar
dodo
User
Beiträge: 73
Registriert: Mittwoch 10. November 2010, 13:43

So wie geht das mit dem 'Übergeben' und wo und wie muss ich den Pythonscript eintragen das das funktioniert?
Tipp: Ich nutze python 2.5
Ich weiß sogar wie man die Printausgabe in eine Variable weiterleitet.
Zuletzt geändert von dodo am Mittwoch 10. November 2010, 14:45, insgesamt 1-mal geändert.
Geht nicht gibts nicht(Das gilt auch für Python)!
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

dodo hat geschrieben:Ich kenn die Grundlagen: print, Variablen, Funktionen, Klassen, Objekte, Module...
Ok, wirkte nicht wirklich so! (Wobei es einen Unterschied zwischen "kennen" und "beherrschen" gibt ;-)
Und ich kenn mich auch mit nen paar Modulen aus:easygui, pygame(Teils, Lern auf der Homepage zurzeit)
:evil: :evil: :evil:
Das sind aber keine Module der Standard-Lib! Und wer sich durch das offizielle Tutorial gearbeitet hat, der kennt schon einige wichtige Module. Kommandozeilenparameter werden dort u.a. auch besprochen, s. Kapitel 10.3.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

dodo hat geschrieben:So wie geht das mit dem 'Übergeben' und wo und wie muss ich den Pythonscript eintragen das das funktioniert?
Hab ich Dir doch schon genannt! Schau Dir die Module doch mal an und dazu den Abschnitt im Tutorial...
Tipp: Ich nutze python 2.5
Gibt es dafür einen trifftigen Grund? Du solltest besser 2.6 oder 2.7 nutzen oder ggf. auch 3.1.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Benutzeravatar
dodo
User
Beiträge: 73
Registriert: Mittwoch 10. November 2010, 13:43

Ich behersche sie!
Und zu den Standartmodulen benutze ich seit längererem datetime, time, und sys.exit für Pygame.
Zuletzt geändert von dodo am Mittwoch 10. November 2010, 14:50, insgesamt 1-mal geändert.
Geht nicht gibts nicht(Das gilt auch für Python)!
Benutzeravatar
dodo
User
Beiträge: 73
Registriert: Mittwoch 10. November 2010, 13:43

Und zu dem 'Warum 2.5' 3.1 kann ich nich, hab mich schon auf 2.5 spezialisiert.
Geht nicht gibts nicht(Das gilt auch für Python)!
Xynon1
User
Beiträge: 1267
Registriert: Mittwoch 15. September 2010, 14:22

Das ändert nichst daran das es so wirkt als hättest du noch nie bzw wenig Programmiert.

Und einzelne Standardmodule zunennen, ist nun kein tolles Basiswissen.
Mal abgesehen davon, das sys.exit kein Modul ist.
Traue keinem Computer, den du nicht aus dem Fenster werfen kannst.
Xynon auf GitHub
Benutzeravatar
/me
User
Beiträge: 3556
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

dodo hat geschrieben:So wie geht das mit dem 'Übergeben' und wo und wie muss ich den Pythonscript eintragen das das funktioniert?
Tipp: Ich nutze python 2.5
Das offizielle Tutorial hat einen Abschnitt zu Kommandozeilenargumenten.

Etwas überspitzt gefragt noch Folgendes: Gibt es für deine Plattform keine aktuelle Python-Version der 2.x-Reihe oder möchtest du dein fertiges Werk im historischen Museum ausstellen?
BlackJack

Hey, 2.5 läuft noch auf vielen "stabilen" Servern und Jython und PyPy sind auch auf dem Stand. Ich habe die Version auch als gemeinsame "Untergrenze" für die Sachen die ich schreibe. Und ich schreibe nix für Museen. :-)
Benutzeravatar
dodo
User
Beiträge: 73
Registriert: Mittwoch 10. November 2010, 13:43

Zu den 'einzelnen Standartmodulen' die reichen mir.
Zwar ist sys.exit kein Modul, sondern nur eine Funktion in einem Modul - Aber ich dachte, ich sollts mal mit aufzählen. :K
Benutzeravatar
dodo
User
Beiträge: 73
Registriert: Mittwoch 10. November 2010, 13:43

Und was das mit dem 'Museum' angeht, hat BlackJack recht.
Geht nicht gibts nicht(Das gilt auch für Python)!
Antworten