@Mirozr

Как справить AttributeError?

Код:
import subprocess

def extract_wifi_password():
    profiles_data = subprocess.check_output('netsh wlan show profiles').decode('utf-8').split('\n')

    profiles = [i.split(':')[1].split() for i in profiles_data if 'All User Profile' in i]

    for profile in profiles:
        profile_info = subprocess.check_output(f'netsh wlan show profile {profile} key=clear').decode('utf-8').split('\n')

        try:
            password = [i.split(':')[1].split() for i in profile_info if  'Key Content' in i][0]
        except IndexError:
            password = None
        print(f'Profile: {profile}\nPassword: {password}\n{"#" * 20}')

extract_wifi_password()

Ошибка:
Traceback (most recent call last):
File "C:\ooo.py", line 17, in
extract_wifi_password()
File "C:\ooo.py", line 4, in extract_wifi_password
profiles_data = subprocess.getoutput('netsh wlan show profiles').decode('utf-8').split('\n')
AttributeError: 'str' object has no attribute 'decode'
  • Вопрос задан
  • 56 просмотров
Решения вопроса 1
@PavelMos
Поискать текст сообщения об ошибке и выяснить, что decode в третьем питоне применяется к строке, которая не str, а bytes. У обычной строки такой встроенной функции нет (но есть encode) - это можно проверить через __dir__().
То есть тут декодирование не нужно.
str1='Hello, World'
str2=str1.encode('utf-8')
print (str2, type (str2))
b'Hello, World' <class 'bytes'>
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы