Python - механизм для определения типа сжатого файла и распаковки

Сжатый файл может быть классифицирован на следующие логические группы
а. Операционная система, с которой вы работаете (* ix, Win) и т. Д.
б. Различные типы алгоритмов сжатия (т.е. .zip, .Z, .bz2, .rar, .gzip). Atleast из стандартного списка наиболее часто используемых сжатых файлов.
с. Тогда у нас есть механизм тарного шара - там, где, я полагаю, нет сжатия. Но это больше похоже на конкатенацию.

Теперь, если мы начнем обращаться к вышеуказанному набору сжатых файлов,
а. Вариант (а) будет заботиться Python, так как это независимый от платформы язык.
б. Варианты (б) и (в), похоже, имеют проблемы.

Что мне нужно
Как определить тип файла (тип сжатия), а затем разархивировать их?

Подобно:

fileType = getFileType(fileName)  
switch(fileType):  
case .rar:  unrar....
case .zip:  unzip....

etc  

Таким образом, фундаментальный вопрос заключается в том, как определить алгоритм сжатия на основе файла (при условии, что расширение не указано или указано неверно)? Есть ли конкретный способ сделать это в Python?

Ответы на вопрос(5)

Ваш ответ на вопрос