Ошибка разрешения при разархивировании файлов, защищенных паролем - PullRequest
0 голосов
/ 13 апреля 2020

Я пытаюсь распаковать несколько файлов, защищенных паролем, но получаю сообщение об ошибке разрешения. Я пытался выполнить эту операцию, используя vscode от имени администратора, но все еще получаю ту же ошибку.

Вот код:

input_file = ".\\pa-dirty-price-crawler\\folders"

import zipfile
with zipfile.ZipFile(input_file, 'r') as zip_ref:
    zip_ref.extractall(input_file, pwd=b'qpsqpwsr')

Вот ошибка:

Traceback (most recent call last):
  File "c:/Users/usr/workspace/pa-dirty-price-crawler/src/outlook.py", line 23, in <module>
    with zipfile.ZipFile(input_file, 'r') as zip_ref:
  File "C:\ProgramData\Anaconda3\lib\zipfile.py", line 1240, in __init__
    self.fp = io.open(file, filemode)
PermissionError: [Errno 13] Permission denied: '.\\pa-dirty-price-crawler\\folders'

Я не знаю другой библиотеки, которая могла бы выполнять эту же операцию, но если у кого-то есть предложения относительно исправления, я был бы очень признателен.

Редактировать:

Когда я пытаюсь указать полное имя пути файла следующим образом:

input_file = "C:\\Users\\usr\\workspace\\pa-dirty-price-crawler\\folders"

import zipfile
with zipfile.ZipFile(input_file, 'r') as zip_ref:
    zip_ref.extractall(pwd=b'qpsqpwsr')

Я все еще получаю эту ошибку:

Traceback (most recent call last):
  File "c:/Users/usr/workspace/pa-dirty-price-crawler/src/outlook.py", line 23, in <module>
    with zipfile.ZipFile(input_file, 'r') as zip_ref:
  File "C:\ProgramData\Anaconda3\lib\zipfile.py", line 1240, in __init__
    self.fp = io.open(file, filemode)
PermissionError: [Errno 13] Permission denied: 'C:\\Users\\usr\\workspace\\pa-dirty-price-crawler\\folders'

1 Ответ

2 голосов
/ 13 апреля 2020

Похоже, вы передаете каталог в качестве ввода. Это вероятная проблема, а не в том, что zip защищен паролем.

Чтобы извлечь файл zip , zipfile.ZipFile принимает файл zip в качестве входных данных, а не каталог.

Следовательно, вашему коду нужны две переменные: входной zip file и каталог output :

input_file = r".\pa-dirty-price-crawler\folders\myzipfile.zip"
output_directory = r".\pa-dirty-price-crawler\folders"

import zipfile
with zipfile.ZipFile(input_file, 'r') as zip_ref:
    zip_ref.extractall(output_directory, pwd=b'qpsqpwsr')

* обратите внимание на использование r"string", это помогает избежать слешей

...