我正在编写一个在App Engine上运行的脚本,因此我需要遵守RAM限制(特定于应用程序引擎,该限制为1024 MB)。
我正在下载一个大型存档文件,需要从中提取文件列表。存档文件本身只是我为以后离线使用而存储的文件(如果需要),但每次拉取它时,我需要文件列表,因为我正在搜索zip存档中的更改。
以下是我现在拥有的代码块:
我正在下载一个大型存档文件,需要从中提取文件列表。存档文件本身只是我为以后离线使用而存储的文件(如果需要),但每次拉取它时,我需要文件列表,因为我正在搜索zip存档中的更改。
以下是我现在拥有的代码块:
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
使用StringIO
对象,将整个归档文件放入内存中。是否有一种方法可以在不一次性将整个文件放入内存的情况下,从我的r.content
对象转换为文件列表?