Подпроцесс Python обеспечивает ввод и чтение вывода несколько раз [windows]

Я пытаюсь создать скрипт Python, который использует модуль подпроцесса для подключения к базе данных на сервере базы данных и выполнения административных действий на подключенной базе данных.

Это пример сценария, который я пытаюсь

from subprocess import Popen , PIPE

p =  Popen(['cmd'], stdin=PIPE ,stdout = PIPE, stderr=PIPE)

p.stdin.write(b'ipconfig\n') # write to stdin
print (p.stdout.read()) # read stdout


p.stdin.write(b'sqlplus sys/sys@orcl as sysdba\n')
print (p.stdout.read())

p.stdin.write(b'shutdown immediate\n')
print (p.stdout.read())

p.stdin.write(b'startup\n')
print (p.stdout.read())

После каждого ввода мне нужно проверить вывод, чтобы убедиться, что нет ошибок. Для любого вывода или ошибки правильное сообщение должно быть передано обратно пользователю или вызывающей программе.

Приведенный выше скрипт может зависнуть после первой вещи stdout.read. Я проверил различные похожие вопросы и статьи, но ничего из того, что я прочитал, не дало того, что работает Пожалуйста, дайте мне знать, что я могу сделать здесь.

0 ответов

Другие вопросы по тегам