Pregunta

¿Hay una biblioteca que permite determinar si un tipo de contenido determinado es binario o de texto?

Obviamente text/* siempre es textual, pero por cosas como application/json, image/svg+xml o incluso application/x-latex que es bastante difícil sin inspeccionar los datos reales.

¿Fue útil?

Solución

Hay un contenedor para libmagic para el pitón - pymagic . Esa es la mejor manera de lograr lo que desea. Tenga en cuenta que la magia es sólo tan buena como la huella dactilar. Usted puede tener falsos positivos si algo se ve '' como otro formato de archivo, pero la mayoría de los casos pymagic le dará lo que necesita.

Una cosa a tener en cuenta sería la 'solución simple' de la comprobación para ver si alguno de los personajes son 'fuera' del rango ASCII imprimible, como es probable que Unicode encuentro que se parecerá a binario (y, de hecho, sea ??binaria) a pesar de que su contenido simplemente textual.

Otros consejos

Por lo general, los programas que determinan el tipo MIME también le dirá el conjunto de caracteres. Por ejemplo, file(1) (y libmagic correspondiente) dará el siguiente resultado:

> file --mime-encoding /bin/ls
/bin/ls: binary
> file --mime-encoding /etc/passwd
/etc/passwd: us-ascii
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top