Estoy buscando un file de comando de Linux analógico hecho en Python. Debe proporcionar información sobre el tipo de archivo como se describe en man file . El conjunto mínimo de características que estoy buscando es determinar si el archivo es sin formato o texto (legible por humanos). La biblioteca de contenedores será una buena sugerencia. Lo sé, puedo ejecutar file como subproceso y tomar su salida para determinar el tipo de archivo. Pero se supone que mi programa analiza miles de archivos y temo que el tiempo de ejecución sea muy largo en este caso.
necesita verificar el byte "mágico" del archivo, y estaba a punto de contarle sobre:
cuando se me ocurrió que esta pregunta ya debería haber sido respondida en SO, y lo ha sido .
NB: no estoy enumerando pymagic como lo hace la otra publicación, ya que no recibió ninguna actualización desde 0.1 que parece bastante antiguo (incluso el sitio web de origen está inactivo).
para OSX:
brew install libmagic pip install python-magic python >>> magic.from_file('test.py') 'Python script, ASCII text executable'