Python - mecanismo para identificar o tipo de arquivo compactado e descompactar
Um arquivo compactado pode ser classificado em grupos lógicos abaixo
uma. O sistema operacional no qual você está trabalhando (* ix, Win) etc.
b. Diferentes tipos de algoritmo de compressão (ou seja, .zip, .Z, .bz2, .rar, .gzip). Pelo menos a partir de uma lista padrão de arquivos compactados usados principalmente.
c. Então nós temos o mecanismo de tarball - onde eu suponho que não haja compressão. Mas age mais como uma concatenação.
Agora, se começarmos a endereçar o conjunto de arquivos compactados acima,
uma. Opção (a) seria cuidada por python, uma vez que é linguagem independente de plataforma.
b. Opção (b) e (c) parece ter um problema.
O que eu preciso
Como faço para identificar o tipo de arquivo (tipo de compactação) e, em seguida, UN-compactá-los?
Gostar:
fileType = getFileType(fileName)
switch(fileType):
case .rar: unrar....
case .zip: unzip....
etc
Portanto, a questão fundamental é como identificar o algoritmo de compactação com base no arquivo (supondo que a extensão não seja fornecida ou esteja incorreta)? Existe alguma maneira específica de fazê-lo em python?