Я пытаюсь загрузить набор данных из https://datasets.imdbws.com/title.principals.tsv.gz, распаковать содержимое самого кода (Python) и записать полученные файлы на диск.
Для этого я использую следующий фрагмент кода.
results = requests.get(config[sourceFiles]['url'])
with open(config[sourceFiles]['downloadLocation']+config[sourceFiles]['downloadFileName'], 'wb') as f_out:
print(config[sourceFiles]['downloadFileName'] + " starting download")
f_out.write(gzip.decompress(results.content))
print(config[sourceFiles]['downloadFileName']+" downloaded successfully")
Этот код отлично работает для большинства zip-файлов, однако для больших файлов выдает следующее сообщение об ошибке.
File "C:\Users\****\AppData\Local\Programs\Python\Python37-32\lib\gzip.py", line 532, in decompress
return f.read()
File "C:\Users\****\AppData\Local\Programs\Python\Python37-32\lib\gzip.py", line 276, in read
return self._buffer.read(size)
File "C:\Users\****\AppData\Local\Programs\Python\Python37-32\lib\gzip.py", line 471, in read
uncompress = self._decompressor.decompress(buf, size)
MemoryError
Есть ли способ выполнить sh, не загружая zip-файл непосредственно на диск и не распаковывая его для фактических данных.