2017-04-10 107 views
1

私のpythonバージョンは、Windows 10環境でAnacondaから3.5です。私は、私のzipファイルのパスワードを保護する必要があるのでPyminizipを使用しています。Zipfileはまだそれをサポートしていません。どのようにpython Pyminizip compress_multipleは動作しますか?

私は関数pyminizip.compressによって1つのファイルを圧縮することができ、encrypt関数は期待通りに機能しました。しかし、pyminizip.compress_multipleを使用しようとすると、私はいつもPythonのクラッシュ(絵として)に遭遇しました。私はそれが私の悪い入力フォーマットの問題に起因すると信じています。

私が知りたいことは:入力引数src file LIST pathの受け入れ可能な形式は何ですか? Pyminizipのドキュメントから:

pyminizip.compress_multiple([u'pyminizip.so」、 'FILE2.TXT']、 "file.zip"、 "1233"、4、進捗
のArgs:
(パスワードなしのzipを作成する) 1. SRCファイルリストパス(リスト)
2. DSTファイルパス(文字列)
3.パスワード(文字列)またはなし
4. compress_level(int型)1の間〜9、1(より高速)< ---> 9(詳細圧縮)

最初の引数のようです。src file LIST pathは、圧縮が必要なすべてのファイルを含むリストにする必要があります。したがって、私はコマンドを使用して1つのファイルを圧縮するcompress_multipleを使用しようとした:

pyminizip.compress_multiple([ 'ファイル名.txt']、 'output.zip'、 'パスワード'、4、オプション)

そしてそれはPythonクラッシュにつながります。だから私はargsに完全なパスを追加しようとします。

pyminizip.compress_multiple([os.getcwd()、 'ファイル名.txt']、...)

、まだ、それが再び墜落しました。だから私は、多分私は、この

パス= os.getcwd()。スプリット(os.sep)
pyminizip.compress_multiple([パス、 'ファイル名.txt']のようなパスを分割する必要があると思います。.. )

まだまだ運が悪いです。何か案は?

+0

に思えるが、潜在的なバグ... HTTPS: //github.com/smihica/pyminizip/issues/5 – WhoYoung99

答えて

0

Pyminizipでは、ファイル内のパス名(またはスクリプトが実行されている相対パス名)が必要です。

あなたの例:

pyminizip.compress_multiple([os.getcwd(), 'Filename.txt'], ...) 

は)(os.getcwdのファイルのリストを与え、その後、別のファイル、 'ファイル名.txt'。 os.pathを使用してそれらを1つのパスに結合する必要があります。conversly

pyminizip.compress_multiple([os.path.join(getcwd(), 'Filename.txt')],...) 

::参加()あなたのファイル名の例では

、あなたが必要となり、それは入力のフォーマットについてではありませんように

pyminizip.compress_multiple([os.path.join(getcwd(), 'Filename1.txt'), os.path.join(getcwd(), 'Filename2.txt')],...) 
関連する問題