
前回はPythonでパスワード無しのZIPファイルを作る方法を記しましたが、
今回はパスワード付きzipファイルを展開(解凍)する方法を記します。
Pythonのzipfileでパスワード付きZipファイルを展開(解凍)する方法
Pythonのデフォルトライブラリのzipfileでもパスワード付きZipファイルをパスワード無しZipファイルと同じように展開(解凍)する事は出来ます。
ただしPython3ではパスワードをByte型に変換して渡してあげる必要があります。
import zipfile
#----------------------
# Zipファイル用のオブジェクトを取得する
zipfilepointer=zipfile.ZipFile("c:\\test\\new2.zip","r")
# パスワードを指定する
zipfilepointer.setpassword(bytes(b"password02"))
# Zipファイルを展開(解凍)する
zipfilepointer.extractall("c:\\test\\")
# Zipファイル用のオブジェクトを閉じる
zipfilepointer.close()
#----------------------
#----------------------
# Zipファイル用のオブジェクトを取得する
zipfilepointer=zipfile.ZipFile("c:\\test\\new3.zip","r")
# Zipファイルにパスワードを指定しながら展開(解凍)する
zipfilepointer.extractall("c:\\test\\",pwd=bytes(b"password03"))
# Zipファイル用のオブジェクトを閉じる
zipfilepointer.close()
#----------------------
デフォルトパスワードを指定する
zipfilepointer.setpassword(bytes(b"password02"))
zipファイルオブジェクト.setpassword( bytes(bパスワードをの文字列) )
デフォルトのパスワードをバイト型に変換して渡します。
実行して成功すれば、以降のextractallで展開しようとすると、このパスワードでZIPファイルを展開されます。
Zipファイルにパスワードを指定しながら展開(解凍)する
zipfilepointer.extractall("c:\\test\\",pwd=bytes(b"password03"))
zipファイルオブジェクト.extractall( 展開したファイルを置く場所のパス , pwd=bytes(b パスワードの文字列 ))
パスワードを指定しつつZIPファイルを展開します。
パスワードはバイト型に変換して渡します。
Pythonのpyminizipでパスワード付きZipファイルを展開(解凍)する方法
パスワード付きのZipファイルを作る時に使ったpyminizipでも展開する事が出来ます。
このpyminizipのインストール方法はこちらを参考ください。
import pyminizip
#----------------------
# Zipファイルを作成する
pyminizip.uncompress("c:\\test\\new2.zip","password02","c:\\test\\",0)
#----------------------
Zipファイル用のオブジェクトを取得する
pyminizip.uncompress("c:\\test\\new2.zip","password02","c:\\test\\",0)
pyminizip.uncompress( 展開するZIPファイルのパス , パスワードをの文字列 , 展開する場所のパス , 数字の0 )
パスワード付きZIPを展開します。
指定するパスワードはzipfileと違いバイト型に変換する必要がありません。