App Engine'de çalışan bir komut dosyası üzerinde çalışıyorum, bu yüzden bağlı kalmam gereken RAM sınırlarına sahibim (sınırlayan uygulama motoruna özgü 1024 MB).Tüm zip dosyasını belleğe yüklemeden indirilmiş bir zip dosyasından dosya almanın yolu nedir?
Dosya listesini ayıklamam gereken büyük bir arşivi indiriyorum. Arşivin kendisi sadece daha sonra çevrimdışı kullanım için sakladığım bir dosyadır (gerekirse), ancak her indirdiğimde zip arşivindeki değişiklikleri aradığım için dosya listesine ihtiyacım var. belleğe tüm arşiv yerleştirerek oluyor, StringIO
nesne ile
url = 'http://url.to/archive.zip'
r = requests.get(url)
file_mem = StringIO.StringIO(r.content)
zip_file = zipfile.ZipFile(file_mem, 'r')
# get the list of files
file_list = zip_file.namelist() # list of files -- stored in memory
: Burada
Şimdi sahip kod bloğudur.r.content
nesnesinden, tüm dosyayı bir kerede belleğe yerleştirmeden bir dosya listesine gidebilmem için bir yol var mı?