41

ZipFilePython 2.5 でZIP ファイルを作成していますが、これまでのところ問題なく動作します。

import zipfile, os

locfile = "test.txt"
loczip = os.path.splitext (locfile)[0] + ".zip"
zip = zipfile.ZipFile (loczip, "w")
zip.write (locfile)
zip.close()

しかし、ZIP ファイル内のファイルを暗号化する方法が見つかりませんでした。system と call を使用することもできますPKZIP -sが、もっと「Pythonic」な方法が必要だと思います。オープンソースのソリューションを探しています。

4

7 に答える 7

25

Pythonでパスワード暗号化zipファイルを作成するための簡単なライブラリを作成しました。-ここに

import pyminizip

compression_level = 5 # 1-9
pyminizip.compress("src.txt", "dst.zip", "password", compression_level)

ライブラリには zlib が必要です。

WINDOWS/MACで解凍できることを確認しました。

于 2013-04-17T01:39:00.683 に答える
8

重複した質問:パスワードで暗号化された zip ファイルを作成するコードは? の代わりに使用することを推奨する回答があります。私の経験はこれを裏付けています。7zzip

完全を期すために、ここでも@jfsによる回答をコピー/貼り付けます。

'myarchive.zip'オープンソース7-Zipユーティリティを使用して暗号化された zip アーカイブ (という名前) を作成するには:

rc = subprocess.call(['7z', 'a', '-mem=AES256', '-pP4$$W0rd', '-y', 'myarchive.zip'] + 
                     ['first_file.txt', 'second.file'])

7-Zip をインストールするには、次のように入力します。

$ sudo apt-get install p7zip-full

手動で解凍するには (zip ユーティリティとの互換性を示すため)、次のように入力します。

$ unzip myarchive.zip

そしてP4$$W0rd、プロンプトで入力します。

または Python 2.6+ でも同じです:

>>> zipfile.ZipFile('myarchive.zip').extractall(pwd='P4$$W0rd')
于 2014-12-12T12:27:59.550 に答える
-1

Chilkatライブラリを使用できます。商用ですが、無料の評価があり、かなり良さそうです。

これは私がここから得た例です:

import chilkat

# Demonstrates how to create a WinZip-compatible 128-bit AES strong encrypted zip
zip = chilkat.CkZip()
zip.UnlockComponent("anything for 30-day trial")

zip.NewZip("strongEncrypted.zip")

# Set the Encryption property = 4, which indicates WinZip compatible AES encryption.
zip.put_Encryption(4)
# The key length can be 128, 192, or 256.
zip.put_EncryptKeyLength(128)
zip.SetPassword("secret")

zip.AppendFiles("exampleData/*",True)
zip.WriteZip()
于 2008-08-20T01:20:48.180 に答える