Windows10のPythonでファイルをパスワード付きZipファイルへ圧縮する方法

前回はPythonでパスワード無しのZIPファイルを作る方法を記しましたが、今回はパスワード付きでzipファイルにまとめたり圧縮したりする方法を記します。



Pythonでファイルをパスワード有りZipに圧縮する方法

パスワード有りのZIPファイルを作るには「pyminizip」というライブラリをインストールする必要があります。

コマンドプロンプトを管理者権限で開き

pip install pyminizip

と入力します。


正しくインストール出来たら

と表示されます。


しかし、これで

Installing collected packages: pyminizip
Running setup.py install for pyminizip … error
とか
error: Microsoft Visual C++ 14.0 is required. Get it with “Microsoft Visual C++ Build Tools”: http://landinghub.visualstudio.com/visual-cpp-build-tools
と表示され失敗する場合は「Microsoft Visual C++ 14.0」をインストールする必要があります。

この記事を書いている時点ではエラーメッセージで指定されているhttp://landinghub.visualstudio.com/visual-cpp-build-toolsは404になっていますので他で取得します。

https://visualstudio.microsoft.com/ja/downloads/のサイトを開きます。

「すべてのダウンロード」の所の「Tools for Visual Studio 2017」の文字を左クリックします。


すると、さらにメニューが展開されるので、その中から「Build Tools for Visual Studio 2017」の項目の「ダウンロード」と書かれたボタンを押します。

vs_buildtools__1029350024.1544106217.exeというファイルがダウンロードされるので、これを実行します。


「Visual Studio Installer」というウインドウが開きます。


起動するまでちょっとだけ待ちます。


ちょっと待つとインストールする物を選ぶウインドウが表示されます。

これの「Visual C++ Build Tools」の所を左クリックしチェックを入れます。


するとウインドウの左側にオプションのチェックボックスのメニューが出るので↑のようにチェックを入れて「インストール」のボタンを左クリックします。

これでインストールが開始されるのでしばらく待ちます。
※ダウンロードしながらなので結構待つ事になるかも…

しばらく待つとセットアップが完了したと表示されるので「閉じる」ボタンを左クリックすればインストール完了です。


インストールが終わったら、また管理者権限で開いたコマンドプロンプトで「pip install pyminizip」と入力します。

これでインストールできるかと思います。

pyminizipがインストールし終えたら「Build Tools for Visual Studio 2017」はアンインストールしてもかまいません。

import pyminizip
#----------------------
# 1つのファイルからZipファイルを作成する
pyminizip.compress("c:\\test\\1.txt","\\","c:\\test\\new1.zip","password01",9)
pyminizip.compress("c:\\test\\2.txt","\\data\\d02","c:\\test\\new2.zip","password02",9)

# 複数のファイルからZipファイルを作成する
pyminizip.compress_multiple(["c:\\test\\1.txt","c:\\test\\2.txt","c:\\test\\3.txt"],["\\","\\data","data\\d03"],"c:\\test\\new3.zip","password03",9)
#----------------------

指定したURLの中身をファイルとしてダウンロードします。

pyminizipをインポート

import pyminizip

まずimport pyminizipします。

1つのファイルからZipファイルを作成する

pyminizip.compress("c:\\test\\1.txt","\\","c:\\test\\new1.zip","password01",9)

pyminizip.compress( “圧縮したいファイル名とパス” , “Zipファイル内の場所”, “作られるZIPファイルのパスとファイル名” , “パスワード文字列” , 圧縮レベル )

1つのファイルからZIPファイルをパスワード付き圧縮レベル指定して作成します。
実行して成功すればZIPファイルが作成されます。

■第1引数
ファイルのフルパスと名前

■第2引数
Zipファイル内の場所を指定します。
「\\」でZIP内最上位に置かれ、内部にフォルダを作って配置したい場合は「\\フォルダ名1」、「\\フォルダ名1\\フォルダ名2」といった感じに「\\」で区切ります。
前回の記した「zipfile」を使った方法と違いリネームは出来ません。

■第3引数
パスワード付きZipファイルが作成されるフルパスと名前。

■第4引数
パスワードの文字列

■第5引数
圧縮率を示す0~9の数字を入れます。
0は無圧縮、9が最高圧縮になります。

複数のファイルからZipファイルを作成する

pyminizip.compress_multiple(["c:\\test\\1.txt","c:\\test\\2.txt","c:\\test\\3.txt"],["\\","\\data","data\\d03"],"c:\\test\\new3.zip","password03",9)

pyminizip.compress_multiple( [“圧縮したいファイル名とパス1″,”圧縮したいファイル名とパス2″,”圧縮したいファイル名とパス3”] , [“Zipファイル内の場所1″,”Zipファイル内の場所2″,”Zipファイル内の場所3”] , “作られるZIPファイルのパスとファイル名” , “パスワード文字列” , 圧縮レベル )

複数のファイルからZIPファイルをパスワード付き圧縮レベル指定して作成します。
実行して成功すればZIPファイルが作成されます。

■第1引数
ファイルのフルパスと名前を配列で複数指定する

■第2引数
Zipファイル内の場所を配列で複数指定する
「\\」でZIP内最上位に置かれ、内部にフォルダを作って配置したい場合は「\\フォルダ名1」、「\\フォルダ名1\\フォルダ名2」といった感じに「\\」で区切ります。
前回の記した「zipfile」を使った方法と違いリネームは出来ません。

■第3引数
パスワード付きZipファイルが作成されるフルパスと名前。

■第4引数
パスワードの文字列

■第5引数
圧縮率を示す0~9の数字を入れます。
0は無圧縮、9が最高圧縮になります。

スポンサーリンク







シェアする

  • このエントリーをはてなブックマークに追加

フォローする

関連記事



スポンサーリンク