ich habe mir ein kleines Filetransferprogramm geschrieben, welches aus einem Eingangsordner gezippte Dateien in einen Zielordner entpackt.
Das ganze funktioniert ohne Probleme mit Dateien kleiner ca 25MB.
Bei Dateien welche größer sind, reagiert mein wxPython-Programm noch (Interaktionen mit Controls noch möglich), jedoch scheint er die weitere, sequentielle Abarbeitung des Codes einzustellen.
Er legt die entpackte Zieldatei an, definiert diese jedoch mit 0 Byte.
Wenn ich jetzt die Abarbeitung erneut händisch starte (ButtonClick), lässt er die betroffene Datei aus (da schon vorhanden), und nimmt die nächste - die Datei mit welcher er Probleme hat gibt er aber anscheinend intern (?) wieder frei und zeigt eine Dateigröße X an (Datei ist dennoch nicht komplett vollständig).
Was könnte hier ein Lösungsansatz sein? Eine Pause nach jedem Filetransfer? Ungünstig.
Die unzip als solche sieht folgendermaßen aus (Python 2.5):
Code: Alles auswählen
if isZipped(file):
#Unpacking Ziparchives
sourceZip = zipfile.ZipFile(os.path.join(root,file), 'r')
for name in sourceZip.namelist():
if (name.find('.DUMMY)!= -1) or (name.find('.dummy)!= -1):
outfile = open(os.path.join(target,name), 'wb')
outfile.write(sourceZip.read(name))
outfile.close()
sourceZip.close()
self.tclLog.write('\n -> entpackt')