Un file compresso può essere classificato in sotto gruppi logici
a. Il sistema operativo su cui si sta lavorando (* ix, Win) ecc.
b. Diversi tipi di algoritmo di compressione (i.e .zip, .Z, .bz2, .rar, .gzip). Atleast da una lista standard di file compressi per lo più usati.
c. Poi abbiamo il meccanismo della palla di catrame - dove suppongo non ci sia compressione. Ma agisce più come una concatenazione.Python - meccanismo per identificare il tipo di file compresso e il uncompress
Ora, se iniziamo ad affrontare il set sopra di file compressi,
a. L'opzione (a) sarebbe curata da python poiché è un linguaggio indipendente dalla piattaforma.
b. L'opzione (b) e (c) sembra avere un problema.
cosa ho bisogno
Come identificare il tipo di file (tipo di compressione) e poi li UN-comprimere?
come:
fileType = getFileType(fileName)
switch(fileType):
case .rar: unrar....
case .zip: unzip....
etc
Quindi la domanda fondamentale è come si fa a identificare l'algoritmo di compressione in base al file (supponendo che l'estensione non è previsto o non corretto)? C'è qualche modo specifico per farlo in Python?
Identifica bene il tipo di file. Tuttavia, si dovrebbe tornare in oggetto creato aprendo il file e consentendo l'accesso. Altrimenti finirai per testare di nuovo il tipo di file per vederti che dovrebbe essere gestito. Questo può essere evitato creando un'astrazione comune in grado di gestire tutti i tipi di file supportati. Lo schema è chiamato "factory". – Ber
Puoi anche utilizzare questo sito per cercare le firme che desideri: http://www.filesignatures.net/index.php –
Il formato del file zip consente di aggiungere dati arbitrari all'inizio del file, quindi cerca un il numero magico per i file zip non è corretto in tutti i casi. –