我想制作一个目录的tar文件并加密tar文件
目前,我创建了一个tar文件并将其保存到HDD中。然后,我读取tar文件来加密并保存加密版本
但我的问题是我不需要tar文件,并在进程结束时将其删除。 因此,我觉得编写tar文件是浪费时间
我的代码的形式很简单:
import tarfile
import gnupg
......
with tarfile.open(name = tarpath, mode = 'w:xz') as tar:
for afile in files:
tar.add(name = afile)
......
with open(tarpath, 'rb') as tarstream:
gpg.encrypt_file(tarstream, fingerprint, output = outpath)
在代码的前半部分,tar文件被保存到磁盘中。我是否可以避免此步骤并将tar结果直接链接到gpg的输入中
您正在寻找的是
BytesIO
类。BytesIO
类是一个处理字节流的类似文件的对象要注意的要点是:
BytesIO()
fileobj
参数代替name
参数推荐的备选方案
正如评论中所讨论的,使用文件更好,以避免数据过大时出现内存问题。如果您不想担心手动删除文件,可以使用
tempfile.TemporaryFile
在文件关闭时自动删除文件相关问题 更多 >
编程相关推荐