我有一个Python
脚本,提示用户输入。
input = raw_input("Enter input file: ")
model = raw_input("Enter model file: ")
虽然我可以使用以下PHP
命令来执行脚本,但如何在提示时提供输入?
$output = shell_exec("python script.py");
此外,与shell_exec()
一样,我想返回所有输出行,而不仅仅是打印的第一行/最后一行。
有效的解决方案:
$descriptorspec = array(
0 => array("pipe", "r"),
1 => array("pipe", "w")
);
$process = proc_open('python files/script.py', $descriptorspec, $pipes, null, null); // run script.py
if (is_resource($process)) {
fwrite($pipes[0], "files/input.txt\n"); // input 1
fwrite($pipes[0], "files/model.txt\n"); // input 2
fclose($pipes[0]); // has to be closed before reading output!
$output = "";
while (!feof($pipes[1])) {
$output .= fgets($pipes[1]);
}
fclose($pipes[1]);
proc_close($process); // stop script.py
echo ($output);
}