Seite 1 von 1

Dateityp auslesen

Verfasst: Mittwoch 8. April 2009, 10:38
von hallo02
Hallo Zusammen

Ich bin an einem online Explorer für einen UNIX Server.
Im Zusammenhang mit der Ausgabe der Daten und Ordner möchte ich gerne den Datentyp der Dateien ausgeben. (Je nach Dateityp kann man diese dann auch editieren).
Ich glaube mit os.stat() ist mit nicht geholfen und mit den Attributen des File Objekt auch nicht.

Achtung, wegen den Umständen bin ich gezwungen mit Python 2.1.3 zu arbeiten.

Vielen Dank.

Verfasst: Mittwoch 8. April 2009, 10:43
von Hyperion
Was genau meinst Du mit "Typ"? Beziehst Du Dich auf die Endung oder wirklich den Inhalt? Oder willst Du Verzeichnis von File trennen?

Für ersteres musste eben die Endung parsen, für letzteres sollte es auch in 2.1 Funktionen in der Standard-Lib geben.

Für mittleres Problem wüßte ich auf die schnelle nichts mit Python Bordmitteln - aber ist gibt das Programm "file" unter Linux. Das könnteste ja aus dem Python-Script aufrufen und für die Erkennung nutzen.

Verfasst: Mittwoch 8. April 2009, 10:47
von hallo02
Danke für die Antwort.

Ich spreche von Typbestimmung der Dateien.
File/Directory ist kein Problem, Filename Endung parsen auch nicht, was jedoch nicht wirklick gut(sicher) ist.

Ich werde mal dem Hinweis File unter Linux nachgehen.

Verfasst: Mittwoch 8. April 2009, 11:04
von jerch
Für die Library hinter "file" extistieren auch python-bindings, siehe libmagic und Python.
Damit kannst Du gut binäre Dateien "erkennen". Manchmal kommst Du aber um das Parsen der Endung nicht herum, z.B. nutzen viele Programme txt/plain als Typen und Du kannst nur an Hand der Endung entscheiden, welches Programm dahinter steckt. Für die wichtigsten Endungen funktioniert immerhin "mimetypes.guess_type()".