【发布时间】:2016-02-15 23:34:55
【问题描述】:
我在磁盘上有一个非常大的文本文件。假设它是 1 GB 或更多。还假设此文件中的数据每 120 个字符有一个 \n 字符。
我正在使用python-gnupg 对此文件进行加密。 由于文件太大,我无法一次将整个文件读入内存。
但是,我使用的gnupg.encrypt() 方法要求我一次发送所有数据——而不是分块发送。那么如何在不耗尽所有系统内存的情况下加密文件呢?
这里是一些示例代码:
import gnupg
gpg = gnupg.GPG(gnupghome='/Users/syed.saqibali/.gnupg/')
for curr_line in open("VeryLargeFile.txt", "r").xreadlines():
encrypted_ascii_data = gpg.encrypt(curr_line, "recipient@gmail.com")
open("EncryptedOutputFile.dat", "a").write(encrypted_ascii_data)
此示例生成无效的输出文件,因为我不能简单地将加密的 blob 连接到一个文件中。
【问题讨论】:
标签: python encryption gnupg