Я хочу взаимодействовать с двоичным файлом, отправив ему некоторый ввод и затем распечатать сгенерированный вывод.
Сам двоичный файл работает следующим образом:
binary.exe
Please enter the input
abcd
generated_output
Двоичный файл читает входные данные, используяПрерывание INT 21, поэтому нет необходимости отправлять символ новой строки в двоичный файл в конце ввода.Как только длина ввода соответствует желаемой длине, двоичный файл автоматически генерирует вывод.Длина ввода должна составлять 10 символов.
Примечание: Бинарное чтение по одному символу ввода из стандартного ввода с использованием прерывания INT 21.Таким образом, он обрабатывает каждый символ ввода как и когда он набирается в stdin.Как только 10-й символ набирается в stdin, вывод генерируется.
Я хотел бы зарегистрировать вывод.
До сих пор я мог использовать только подпроцесс check_output для получения выводадвоичный файл с надписью «Пожалуйста, введите ввод», как показано ниже:
#! /usr/bin/python
from subprocess import check_output
import sys
p = sys.argv[1]
result = check_output(p, shell=True)
print result
Приведенный выше код не вернется, поскольку двоичный файл ожидает ввода данных.
ЕслиЯ нажимаю «Ctrl + C» в командной строке, затем первая строка двоичного вывода печатается как:
«Пожалуйста, введите ввод».
Я хотел бы передать вводв двоичный файл после этого и запишите сгенерированный вывод в файл.