Frage

Gibt es eine Bibliothek, die, ob ein bestimmten Inhaltstyp ermöglicht die Bestimmung ist binär oder textbasiert?

Offensichtlich text/* ist immer wörtlich, aber für Dinge wie application/json, image/svg+xml oder sogar application/x-latex es ist recht schwierig, ohne die eigentlichen Daten zu inspizieren.

War es hilfreich?

Lösung

Es ist ein Wrapper für libmagic für Python - pymagic . Das ist die einfachste Methode, um zu erreichen, was Sie wollen. Beachten Sie, dass Magie nur so gut wie der Fingerabdruck ist. Sie können falsch-positive Ergebnisse haben, wenn etwas ‚aussieht‘ wie ein anderes Dateiformat, aber die meisten Fälle pymagic wird dir geben, was Sie brauchen.

Eine Sache zu achten wäre die ‚einfache Lösung‘ zu prüfen, um zu sehen, ob einer der Charaktere ist ‚außerhalb‘ der druckbaren ASCII-Bereich, wie Sie wird wahrscheinlich Begegnung Unicode, die wie binären aussehen werden (und in der Tat, binär), obwohl es nur Textinhalt.

Andere Tipps

In der Regel Programme, die MIME-Typen bestimmen werden Ihnen auch sagen, den Zeichensatz. Zum Beispiel file(1) (und entsprechende libmagic) die folgende Ausgabe geben:

> file --mime-encoding /bin/ls
/bin/ls: binary
> file --mime-encoding /etc/passwd
/etc/passwd: us-ascii
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top