2017-04-10 2 views
1

내 파이썬 버전은 Windows 10 환경에서 3.5를 통해 Anaconda입니다. 내 zip 파일에 대해 암호가 보호되어야하기 때문에 Pyminizip을 사용하고 있으며 Zipfile은 아직 지원하지 않습니다.어떻게 파이썬 Pyminizip compress_multiple 작동합니까?

pyminizip.compress 함수를 통해 단일 파일을 압축 할 수 있으며 암호화 기능이 예상대로 작동했습니다. 그러나, pyminizip.compress_multiple을 사용하려고 할 때 나는 항상 파이썬 크래시 (그림으로)를 만났으며 그것이 잘못된 입력 형식의 문제로 인한 것이라고 생각합니다.

내가 알고 싶은 것은 : 입력 인수 src file LIST path의 수용 가능한 형식은 무엇입니까? Pyminizip의 문서에서 :

pyminizip.compress_multiple
인수 ([u'pyminizip.so ','file2.txt '] "file.zip", "1233", 4, 진행) :
를 1. SRC 파일 목록 경로 (목록)
2. DST 파일 경로 (문자열)
3. 비밀번호 (문자열) 또는 없음 1 사이의
4. compress_level (INT) (노 비밀번호 우편을 만들 수 없습니다) ~ 9, 1 (빠름) < ---> 9 (압축률이 높음)

첫 번째 인수 인 src file LIST path은 압축해야하는 모든 파일을 포함하는 목록이어야합니다.

pyminizip.compress_multiple ([ '파일 이름 .txt', 'output.zip'선택 '암호', 4)

: 따라서, I는 단일 명령으로 파일을 압축하는 compress_multiple 사용하려고

그리고 파이썬 충돌로 이어집니다. 그래서 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를 사용하여 이들을 하나의 경로에 결합해야합니다.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')],...) 
관련 문제