У меня очень большой текстовый файл на диске. Предположим, что это 1 ГБ или больше. Также предположим, что данные в этом файле имеют символ \n
каждые 120 символов.Как зашифровать большой набор данных, используя python-gnupg, не всасывая всю память?
Я использую 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, "[email protected]")
open("EncryptedOutputFile.dat", "a").write(encrypted_ascii_data)
Этот пример дает неверный выходной файл, потому что я не могу просто сцепить зашифрованные сгустки вместе в файл.