Задать вопрос
@vasne

Библиотеке os выводит непонятные символы, что делать?

import os
a = os.system('netsh wlan show profile')
print(a)

64a1ad201ee18091709302.png
  • Вопрос задан
  • 224 просмотра
Подписаться 1 Простой 2 комментария
Пригласить эксперта
Ответы на вопрос 2
Vindicar
@Vindicar
RTFM!
Не "библиотека os", а процесс, который ты запускаешь. В какой кодировке он выводит текст, знает разве что он сам (вероятно, или windows-1251, или cp866). Но почти наверняка не в юникоде, с которым работает питон.
Так что кодировку придётся выяснять опытным путём и самому полученную строку перекодировать.
Ответ написан
Комментировать
@AndreiPy13
Функция os.system() выполняет команду операционной системы и возвращает код возврата команды, а не вывод команды. Поэтому переменная a по идее содержит код возврата выполнения команды, а не сам вывод.

Чтобы получить вывод команды, можно попробовать воспользоваться модулем subprocess вместо os.system().
Не факт что поможет, но мало ли

import subprocess

command = "netsh wlan show profile"
result = subprocess.run(command, capture_output=True, text=True, encoding="cp866")
output = result.stdout
print(output)


Параметр capture_output=True захватывает вывод команды, а text=True указывает на то, что вывод должен быть в виде текста (строки). Результат выполнения команды сохраняется в переменной result, а вывод доступен через result.stdout
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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