Problem z "subprocess"

Problem z "subprocess"
WW
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 23
0

Hejka, Ktoś może podpowie jak przerobić ten kod by działał poprawnie?
Windows 7 pro
Python 3.7
Kod błędu: UnicodeDecodeError: 'ascii' codec can't decode byte 0x88 in position 33: ordinal not in range(128) (chodzi o dokładnie ten fragment kodu: results = results.decode("ascii"))

Kopiuj
import subprocess

results = subprocess.check_output(["netsh", "wlan", "show", "network"])

results = results.decode("ascii")
results = results.replace("\r","")
ls = results.split("\n")
ls = ls[4:]
ssids = []
x = 0
while x < len(ls):
    if x % 5 == 0:
        ssids.append(ls[x])
    x += 1
print(ssids)
AN
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 988
0

results = results.decode("utf-8") a jak ustawisz na utf-8 to zadziała?

lion137
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 5023
0

Nie wiemy co tam jest, Musisz postarać się o, tzw. Minimal, reproducible example:
https://stackoverflow.com/help/minimal-reproducible-example

SH
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Poznań
  • Postów: 109
0

Też kiedyś miałem problem z replacem. Nie wiem, czy odpowiednia wersja pythona, ale usunąłem jakiekolwiek kodowania i dekodowania(results.decode('ascii')) i posłużyłem się pakietem re i metodą sub z flagą unicode. Pamiętam, że walczyłem z tym dość sporo i dopiero ta flaga mi pomogła.

Kopiuj
re.sub(r"\b%s\b", replacement_word, text, flags=re.UNICODE) 

https://docs.python.org/3/library/re.html

Może to pomoże ?

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.