Чтобы получить результат команды как строку, не обязательно cmd.exe вызывать, можно напрямую запустить дочерний процесс:
import subprocessoutput = subprocess.check_output('ipconfig')
Чтобы ""сохранить в notepad"", просто в файл пишите результат:
from pathlib import PathPath('~/output.txt').expanduser().write_bytes(output)
Вместо приведённого пути (сохраняет файл output.txt в домашнюю директорию пользователя), можно специфичную для программы директорию использовать ().
Можно за один шаг: вызывать команду и сохранить её результат в файл сразу:
with Path('~/output.txt').expanduser().open('wb', 0) as file: subprocess.run('ipconfig', stdout=file, check=True)
См.
Чтобы сохранить вывод, используя другую кодировку (к примеру, ), необходимо декодировать вывод программы в Unicode, а затем сохранить в кодировке, которую понимает ваше окружение:
import ctypesimport osencoding = os.device_encoding(1) or ctypes.windll.keel32.GetOEMCP()text = subprocess.check_output('ipconfig', encoding=encoding)
.
После этого в желаемой кодировке можно сохранить. К примеру, по умолчанию используется locale.getpreferredencoding(False) кодировка:
Path('~/output.txt').expanduser().write_text(text)
вы можете в write_text() другую кодировку передать (к примеру, encoding='utf-8').