Chcę mieć różne zachowanie w skrypcie python, w zależności od typu pliku. Nie mogę użyć rozszerzenia nazwy pliku, ponieważ może nie być obecne lub wprowadzać w błąd. Mógłbym zadzwonić do narzędzia file
i przeanalizować wyjście, ale wolałbym użyć wbudowanego pytona do przenoszenia.Czy istnieje odpowiednik pythonowego narzędzia "file" unix?
Czy w pytonie jest coś, co używa heurystyki do wyprowadzenia typu pliku z jego zawartości?
'libmagic' nie jest idealny dla wszystkich plików. Patrzy na "magiczną liczbę" w nagłówku pliku. Pliki tekstowe, takie jak kod źródłowy, nie mają nagłówków, a libmagic musi uciekać się do dzikiego odgadywania ... może być bardzo źle z nimi. –
Takie jest niebezpieczeństwo wszystkich podejść do podsłuchiwania treści. Często liczba "dopuszczalnych" typów plików jest mniejsza niż lista znana przez libmagic, w takim przypadku sniffowanie aplikacji na poziomie aplikacji ad-hoc może być lepszym rozwiązaniem, ale w ogólnym przypadku niewiele można z tym zrobić. – bobince
libmagic jest tym, z jakiego pliku korzysta, więc bardzo trudno znaleźć bliższe dopasowanie do pliku. –