Geschichte:
Eines meiner Projekte benötigt sehr viele und große Textdateien, die ständig zunehmen werden. Allein jetzt schon in der Testphase sind es gute 15Mb Textdateien. In Zukunft werden es 250Mb++.
Damit der Enduser des Scripts nicht soviel Speicherplatz verbrauchen soll, hab ich mir überlegt, wie ich das ganze komprimieren kann.
Da ist mir ein alter Scherz-Virus eingefallen, der eine komprimierte .txt aus einer .zip entpackt. Die .zip ist wenige Mb groß, doch die entpackte .txt mehrere Gb.
Doch das ganze würde einem nichts nützen, wenn man die .txt entpacken muss.
Also macht man sich dem Modul "zipfile" zunutze und ließt die .txt ohne sie zu entpacken.
Beispiel: #Python 2.7
Code: Alles auswählen
import zipfile
z = zipfile.ZipFile("zipfile.zip", "r")
for filename in z.namelist():
print filename
content = z.read(filename)
print len(content)
print content.split()
Als Beispiel hab ich 10 .txt-Dateien mit gleichem Inhalt jeweils 89Mb groß in eine .zip gepackt und diese war anschließend 3Mb groß.
Wer also mit ziemlich vielen großen .txts handeln muss, spart mit dieser Methode wertvollen Speicher.