2016-04-10 8 views
-4

私はzipfileモジュールで作られたpython zipファイルを暗号化しています。私のコードでは、zipファイルを解読しています。この文字列を実際の.zipファイルにすると、zipファイルのように動作します。しかし、私は暗号化された文字列をメモリジップにダイナミックとして保存し、そこからファイルをインポートして、暗号化されたzipに触れたり解読したりしないようにします。これどうやってするの?復号化されたpython文字列をzipファイルとして使用してファイルをインポートするにはどうすればいいですか?

答えて

1

私はこのように、私はあなたがここで言っているのか理解が、私はあなたがBytesIOを使用したいと思うかなりわからない:

import io 
import zipfile 

out = io.BytesIO() # this is your temporary, in-memory "file" 

with io.open('encrypted_file.zip', mode='rb') as f: 
    # write a new file, with the decrypted information 
    # from the original file 
    out.write(decrypt_function(f.read())) 

# Now, try to unzip the decrypted file 
try: 
    temp = zipfile.ZipFile(out) 
except zipfile.BadZipfile: 
    print('Corrupted zip file or bad decryption') 

# otherwise, everything is okay: 

print(temp.namelist()) # lists items in the zip file 
+0

素晴らしいが、私はいない完全に、一時からファイルをインポートしたいましたどのようにそうするか。 – potco108

+0

解凍する前に 'out.seek(0)'が必要だと思います。 – tdelaney

+0

@tdelaneyそうではありません。 potco108あなたが何を意味するのかわからない_「一時ファイルからファイルをインポートする」_ –

関連する問題