Как я могу изменить это, чтобы пользователь мог ввести свой каталог и избавиться от байтовой ошибки?

#python

#python

Вопрос:

 import zipfile

try:
    with zipfile.ZipFile("daysv2.zip") as file:
        file.extractall(pwd='abc123')
except Exception as e:
    print(e)
else:
    print("Extraction was successful")
  

Как я могу изменить это, чтобы пользователь мог ввести свой каталог и пароль? Также как я могу исправить эту ошибку

 pwd: expected bytes, got str
  

Ответ №1:

pwd должен быть bytes объект, который записывается / указывается, например b'abc123' . Или в более общем смысле:

 bytes('abc123', 'UTF-8') # For UTF-8 encoded string -> bytes
  

Комментарии:

1. Как я могу изменить это, чтобы пользователь вводил каталог файла и пароль

2. @SavarJ, это называется input(…)

3. Я это знаю. Я бы просто сохранил входные данные и поместил их в zip-файл. Функция Zipfile()?

4. Что-то вроде file = input('Enter a file..') и password = input('Enter the password...') , и тогда вы можете сделать with zipfile.ZipFile(file) as f: f.extractall(pwd=bytes(password, 'utf-8')) , должно сделать