gpt4 book ai didi

python - 如何在不使用临时文件的情况下在python中的tarfile中写入大量数据

转载 作者:太空宇宙 更新时间:2023-11-03 12:52:25 24 4
gpt4 key购买 nike

我用 python 编写了一个小的密码模块,其任务是加密文件并将结果放入 tarfile 中。要加密的原始文件可能很大,但这不是问题,因为我的程序一次只需要处理一小块数据,可以即时加密和存储。

我正在寻找一种方法来避免分两次执行此操作,首先将所有数据写入一个临时文件,然后将结果插入到一个 tar 文件中。

基本上我执行以下操作(其中 generator_encryptor 是一个简单的生成器,可以生成从源文件读取的数据 block )。:

t = tarfile.open("target.tar", "w")
tmp = file('content', 'wb')
for chunk in generator_encryptor("sourcefile"):
tmp.write(chunks)
tmp.close()
t.add(content)
t.close()

我有点恼火不得不使用一个临时文件,因为我归档它应该很容易直接在 tar 文件中写入 block ,但是将每个 block 收集在一个字符串中并使用类似 t.addfile('content' , StringIO(bigcipheredstring) 似乎被排除在外,因为我不能保证我有足够的内存来处理旧的 bigcipheredstring。

关于如何做到这一点的任何提示?

最佳答案

您可以创建自己的类文件对象并传递给 TarFile.addfile。您的类文件对象将在 fileobj.read() 方法中动态生成加密内容。

关于python - 如何在不使用临时文件的情况下在python中的tarfile中写入大量数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1389681/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com