Ich habe mir ein Script gebastelt, welches eine Datei dahingehend testen soll, ob sie überhaupt mit 7zip entpackbar ist. Sinnvoll erschien mir hier der "t" Schalter von 7zip.
Code: Alles auswählen
import os, fnmatch, sys, subprocess, re, shlex
def ztest (datei):
args = '7z.exe t ' + datei
p=subprocess.Popen(shlex.split(args),shell=False,stdout=subprocess.PIPE)
p.wait()
returnvalue=p.returncode
if returnvalue == 0:
test = subprocess.check_output(args, shell=True)
regexp = re.compile(r'.rsrc|.data')
if regexp.search(test) is not None:
return 55
else:
return 0
elif returnvalue == 1:
return 1
elif returnvalue == 2:
return 2
elif returnvalue == 7:
return 7
elif returnvalue == 8:
return 8
elif returnvalue == 255:
return 255
Bei kleineren Dateien (z.B.: sqlite-analyzer-win32-x86-3071600.zip mit 652 KB) bekomme ich den passenden Rückgabe-Wert.
Ab ca. 1 MB große Dateien geht nichts mehr...
Vielen Dank im Voraus!
Ich nutze python-2.7.4.amd64.msi unter Windows 7 x64 Professional.
