我需要创建一个临时ZIP文件来存储文件。该ZIP文件需要加密,因此zipfile 在这里行不通。该文件将进一步加密(ZIP将再次加密成另一个文件),因此压缩文件可用作减小其大小以进行更快的互联网传输以及第一层加密的方式。 以下是我目前所拥有的:
import getpass
import tempfile
import pyminizip
def ZipFunction():
#This zips the file and encrypts it with a password
filename = input('Enter the file name: ')
passkey = getpass.getpass(prompt='Enter the password for the file: ')
passkey2 = getpass.getpass(prompt='Confirm the password: ')
if passkey != passkey2:
print('The passwords must be the same! Please restart the process.')
exit()
else:
#Here's where I need help
with tempfile.TemporaryFile() as tmp:
with pyminizip.compress(filename,None,tmp,passkey,9) as archive:
zipstring = archive.readlines()
#From here on the zipstring var is encrypted and creates the "further encrypted"
#file. From here on the script works normally
返回的错误是ValueError: expected arguments are compress(src, srcpath, dst, pass, level)
。
我愿意将pyminizip更换为另一种可以创建加密zip文件的工具。这个“双重加密层”是客户的需求,虽然我并不认为它是必要的,但我没有权力从项目中删除它。
我不习惯处理临时文件。我在这里做错了什么?
None
作为srcpath
传递。 - martineau