Python - mécanisme pour identifier le type de fichier compressé et décompresser

Un fichier compressé peuvent être classés en-dessous de groupes logiques

un. Le système d'exploitation qui vous travaillez (*ix, Win) etc.

b. Les différents types d'algorithme de compression (j'.e .zip,.Z,.bz2,.rar,.gzip). Au moins à partir d'une liste standard de principalement utilisé dans les fichiers compressés.

c. Ensuite, nous avons tar mécanisme où je suppose qu'il n'y a pas de compression. Mais il agit plus comme une concaténation.

Maintenant, si nous commençons à aborder la ci-dessus un ensemble de fichiers compressés

un. Option (a) serait pris en charge par python, car il est indépendant de la plateforme de la langue.

b. Option (b) et (c) semble avoir un problème.

De quoi ai-je besoin

Comment puis-je identifier le type de fichier (type de compression) et de l'ONU-les compresser?


Comme:

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

etc  

Donc la question fondamentale est de savoir comment identifier l'algorithme de compression basé sur le fichier (en supposant que l'extension n'est pas fourni ou incorrecte)? Est-il une manière spécifique de le faire en python?