7z t + datei (bei großen Dateien -> schwarzes Fenster)
Verfasst: Montag 6. Mai 2013, 19:48
Hallo!
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.
Die Return-Werte sind von 7zip (bis auf die 55). Wenn ich innerhalb des Scriptes eine Datei testen lasse, klappt das wunderbar. Wenn ich jedoch aus einem anderen Skript heraus eine etwas größere Datei testen lassen möchte (z.B.: 314.22-notebook-win8-win7-32bit-international-whql.exe mit 167 MB), geht zwar das "schwarze Fenster" auf, aber es passiert nichts.
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.
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.