Мне нужно проверить входы/выходы с помощью proc_open

#Сценарий:

Я выполняю коды на python с помощью proc_open, используя py.exe.

Ex:

proc_open('py.exe file.py', $descriptorspec, $pipes, null, null)
    

Мой код Python может иметь ввод или вывод в неопределенной последовательности.

Ex:

a = input('insert a value')
print(a)

or

print('Hello, this is a program!')
input('insert a value')

#Выходы:

Чтобы получить результаты, я использую fread.

#Входы:

Чтобы получить входные данные, я использую fwrite.

#Проблема:

Поскольку у меня есть неопределенная последовательность в коде Python, я не знаю, ожидает ли моя программа (код Python) ввода или вывода. Если моя программа ожидает ввода, и я выполняю команду fread (вывод), мой PHP войдет в цикл... ожидая несуществующего вывода python.

#Вопрос

Я могу проверить в каналах, ожидает ли мое приложение python ввода или вывода?

P.S. Если это невозможно, то как решить эту проблему?


person Luis Gustavo Araujo    schedule 16.09.2020    source источник


Ответы (1)


Родного решения проблемы, видимо, нет. На данный момент я добавляю непечатаемый символ (0) к пользовательскому вводу.

оригинальный принт: input("enter with one number")

измененный принт: input(chr (0) + "enter with one number")

Таким образом, я могу использовать флаг (выход/вход)

;)

person Luis Gustavo Araujo    schedule 18.09.2020