@Tihon49

Как прочитать питоном DOS(?) кодировку?

Есть python скрипт который узнает все точки wi-fi к которым подключался комп/ноут, затем записывает вывод cmd команд "netsh wlan show profile name=Some_SSID_name key=clear" в .тхт файл.

Но при открытии .тхт файла вижу вот такое:

---------------------
Љ®«ЁзҐбвў® SSID : 1
€¬п SSID : "Some_SSID_name"
’ЁЇ бҐвЁ : €­да бвагЄвга 
’ЁЇ а ¤Ё®бҐвЁ: [ «оЎ®© вЁЇ а ¤Ё®бҐвЁ ]
ђ биЁаҐ­ЁҐ Ї®бв ўйЁЄ : ®вбгвбвўгҐв

Џ а ¬Ґвал ЎҐ§®Ї б­®бвЁ
----------------------
Џа®ўҐаЄ  Ї®¤«Ё­­®бвЁ: WPA2-Personal
Ёда: CCMP
Џа®ўҐаЄ  Ї®¤«Ё­­®бвЁ: WPA2-Personal
Ёда: GCMP
Љ«оз ЎҐ§®Ї б­®бвЁ: ЏаЁбгвбвўгҐв
‘®¤Ґа¦Ё¬®Ґ Є«оз  : UberMan2000

В принципе имена точек и пароли успешно получаю, но как это перекодировать, что бы глаза не резало?

сам код скрипта:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
 
import subprocess
import os
 
 
my_list = []
 
with open('Output.txt', 'w') as file:
    subprocess.run('netsh wlan show profiles', stdout=file, check=True)
 
with open('Output.txt') as file:
    lines = file.readlines()
    lines = str(lines)
    for line in lines.split(','):
        for i in line.split(':'):
            my_list.append(i)
   
with open('SSID.txt', 'a') as file:
    for i in my_list[11::2]:
        file.write(i.replace("\\n'", '').replace(' ', '') + '\n')
 
with open('SSID.txt') as f:
    lines = f.readlines()
    for line in lines:
        line = line.split()
        # print(f'netsh wlan show profile name={line[0]} key=clear')
        with open('Good.txt', 'a') as file:
            try:
                subprocess.run(f'netsh wlan show profile name={line[0]} key=clear', stdout=file, check=True)
            except:
                pass
 
os.system('del Output.txt')
  • Вопрос задан
  • 765 просмотров
Решения вопроса 2
Winsik
@Winsik
сис.админ, недопрограммист :)
with open('Output.txt', encoding='cp866') as file:
Ответ написан
Комментировать
sergey-gornostaev
@sergey-gornostaev Куратор тега Python
Седой и строгий
Утилита netsh выводит данные в кодировке cp866, соответственно и открывать файлы надо тоже в этой кодировке.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы