У меня очень большой файл (скажем, 50 ГБ), который не помещается в ОЗУ, полученный с помощью requests
:
req = requests.get(url, allow_redirects=True, stream=True)
Мне нужно передать его в библиотеку, которая внутренне работает pickle.dumps(x)
на объекте. Я не могу контролировать, как здесь используется pickle, поэтому я не могу попытаться выгрузить каждый кусок по отдельности.
Если я использую req.content (весь файл в виде одной большой байтовой строки), я получаю MemoryError
, поскольку размер файла составляет 50 ГБ. Я могу получить доступ к фрагментам данных, используя req.iter_chunks()
, но Pickle не примет генератор (TypeError: can't pickle generator objects
).
Можно ли как-нибудь передать этот файловый объект из inte rnet в файл pickle?