Я создаю сайт, используя php и XAMPP.Этот веб-сайт принимает файл Python от пользователя, затем ему нужно запустить этот файл Python и получить все выходные данные из этого файла.Я был в состоянии сделать это с помощью shell_exec () в файле php.
Проблема заключается в получении пользовательского ввода для файлов Python.В файлах используются функции input () и sys.stdin.readline ().Мне нужно иметь возможность автоматически отправлять Python-файл "пользовательский ввод" (иногда несколько входов).Я точно знаю, что и сколько «пользовательских входов» мне нужно будет отправить, так что это не требует моего вмешательства.
Я думаю, что один из способов сделать это - изменить способ ввода представленных файлов Python.Если бы я мог сделать это, то я бы сохранил каждый вход в списке, который будет повторяться.К сожалению, я не могу отредактировать действительные команды ввода в отправленных файлах, поэтому это должно быть сделано в верхней части отправленного файла python.
Вот как php-файл выполняет файлы python.
$command = "python python_script.py";
$output = shell_exec($command);
echo nl2br($output);
Я попытался использовать функцию эха (с && для нескольких входов), но единственная проблема с этим заключается в том, что функция эха не может нажимать ввод после каждого эха.Это, однако, успешно сопоставило входные данные с подсказками ввода.Ниже приведен пример.python_script.py должен принять ввод, затем распечатать его, но cmd отобразил это:
C:\>(echo 2 && echo 3) | python python_script.py
number one: 2
number two: 3
C:\>
Теперь я пытаюсь использовать функции подпроцесса в отдельном файле python.Опять же, проблема заключается в «пользовательском вводе»;Я не знаю, как отправить входные данные.Решения подобных проблем не смогли работать для меня, но я уверен, что это из-за моего непонимания функций подпроцесса.
Я думаю, что подпроцесс - мой лучший выбор, но я также буду признателен за любые предложения, использующие php.Я также предпочел бы не создавать пакетный файл для этой проблемы.