【发布时间】:2019-10-27 07:40:54
【问题描述】:
我有以下代码,但显然这不是真正的流媒体。这是我能找到的最好的,但它首先将整个输入文件读入内存。我想在解密大文件(>100Gb 文件)时将其流式传输到 tarfile 模块而不使用所有内存
import tarfile, gnupg
gpg = gnupg.GPG(gnupghome='C:/Users/niels/.gnupg')
with open('103330-013.tar.gpg', 'r') as input_file:
decrypted_data = gpg.decrypt(input_file.read(), passphrase='aaa')
# decrypted_data.data contains the data
decrypted_stream = io.BytesIO(decrypted_data.data)
tar = tarfile.open(decrypted_stream, mode='r|')
tar.extractall()
tar.close()
【问题讨论】: