Dateityp auslesen

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
hallo02
User
Beiträge: 6
Registriert: Dienstag 3. März 2009, 12:52

Mittwoch 8. April 2009, 10:38

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.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7472
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Mittwoch 8. April 2009, 10:43

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.
hallo02
User
Beiträge: 6
Registriert: Dienstag 3. März 2009, 12:52

Mittwoch 8. April 2009, 10:47

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.
jerch
User
Beiträge: 1630
Registriert: Mittwoch 4. März 2009, 14:19

Mittwoch 8. April 2009, 11:04

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()".
Antworten