Как взаимодействовать с внешней программой в Python?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как взаимодействовать с внешней программой в Python?

Сообщение Anonymous »

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

Код: Выделить всё

print('Test Program')
print('1 First option, 2 Second Option')

choice = input()

if choice == '1':
second_param = input('Insert second param: ')
result = choice + ' ' + second_param

print(result)
< /code>
Если я запускаю эту программу напрямую, она работает так же, как и ожидалось. Если я предоставлю вход 1 
, а затем 2 , выход-1 2 .
Я хочу запустить эту программу из другого сценария и взаимодействовать с ним, чтобы распечатать тот же результат. PrettyPrint-Override ">

Код: Выделить всё

EXTERNAL_PROG = 'test.py'

p = Popen(['py', EXTERNAL_PROG], stdout=PIPE, stdin=PIPE, shell=True)

print(p.stdout.readline().decode('utf-8'))
print(p.stdout.readline().decode('utf-8'))
p.stdin.write(b'1\n')
p.stdin.write(b'2\n')
print(p.stdout.readline().decode('utf-8'))
Однако, когда я запускаю код, программа замораживает после печати 1 первой опции, 2 -й второй опция , и мне нужно перезапустить свою оболочку. Это, вероятно, вызвано тем фактом, что subprocess.stdout.readline () < /code> рассчитывает найти символ Newline, а подсказка для второго параметра не содержит одного. Я попытался адаптировать код в свою ситуацию, но он не сработал. Это всего лишь минимальный пример, основанный на нем.

Подробнее здесь: https://stackoverflow.com/questions/619 ... -in-python
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как взаимодействовать с 3D Slicer из внешней среды Python?
    Anonymous » » в форуме Python
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous
  • Проблема с программой pip в Python [дубликат]
    Гость » » в форуме Python
    0 Ответы
    31 Просмотры
    Последнее сообщение Гость
  • Я работаю над программой openCV Python, но эта ошибка продолжает возникать :(
    Anonymous » » в форуме Python
    0 Ответы
    32 Просмотры
    Последнее сообщение Anonymous
  • Я работаю над программой openCV Python, но эта ошибка продолжает возникать :(
    Anonymous » » в форуме Python
    0 Ответы
    37 Просмотры
    Последнее сообщение Anonymous
  • Связь между моей программой Python и библиотекой нарушена?
    Anonymous » » в форуме Python
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»