В моем проекте мне нужно проверить тип mime загруженного файла. Я просто использую команду file следующим образом:
from subprocess import Popen, PIPE
filetype = Popen("/usr/bin/file -b --mime -", shell=True, stdout=PIPE, stdin=PIPE).communicate(file.read(1024))[0].strip()
Конечно, вы можете захотеть переместить фактическую команду в некоторый файл конфигурации, так как параметры командной строки различаются в зависимости от операционной системы (например, Mac).
Если вам просто нужно знать, является ли это PDF или нет, и вам не нужно обрабатывать его в любом случае, я думаю, что команда file является более быстрым решением, чем библиотека. Делать это вручную, конечно, также возможно, но команда file дает вам больше гибкости, если вы хотите проверять разные типы.