Eine komprimierte Datei kann in folgende logische Gruppen eingeteilt werden:
a. Das Betriebssystem, an dem Sie arbeiten (* ix, Win) usw.
b. Verschiedene Arten von Komprimierungsalgorithmen (z. B. .zip, .Z, .bz2, .rar, .gzip). Nicht zuletzt aus einer Standardliste meist verwendeter komprimierter Dateien.
c. Dann haben wir Tar Ball Mechanismus - wo ich vermute, es gibt keine Kompression. Aber es wirkt eher wie eine Verkettung.Python - Mechanismus zum Identifizieren komprimierter Dateitypen und zum Dekomprimieren
Nun, wenn wir beginnen, die oben genannten Satz von komprimierten Dateien zu adressieren,
a. Option (a) würde von python beachtet werden, da es plattformunabhängige Sprache ist.
b. Option (b) und (c) scheint ein Problem zu haben.
Was benötige ich
Wie kann ich den Dateityp (Kompressionstyp) zu identifizieren und sie dann UN komprimieren?
Like:
fileType = getFileType(fileName)
switch(fileType):
case .rar: unrar....
case .zip: unzip....
etc
So ist die grundlegende Frage ist, wie identifizieren wir den Kompressionsalgorithmus auf der Datei basiert (vorausgesetzt, dass die Erweiterung nicht oder nicht korrekt zur Verfügung gestellt)? Gibt es einen bestimmten Weg, um es in Python zu tun?
Dies identifiziert den Dateityp. Sie sollten jedoch ein Objekt zurückgeben, das durch Öffnen der Datei und Erlauben des Zugriffs erstellt wurde. Andernfalls werden Sie den Dateityp erneut testen, um zu sehen, ob Sie ihn verarbeiten sollten. Dies kann vermieden werden, indem eine allgemeine Abstraktion erstellt wird, die mit allen unterstützten Dateitypen umgehen kann. Das Muster lautet "Fabrik". – Ber
Sie können diese Seite auch verwenden, um nach den gewünschten Signaturen zu suchen: http://www.filesignigns.net/index.php –
Das zip-Dateiformat erlaubt es, beliebige Daten an den Anfang der Datei anzuhängen, also nach a zu suchen magische Zahl für Zip-Dateien ist nicht in allen Fällen korrekt. –