如何将“用户输入”从另一个 python 脚本(或 php 执行)发送到 python 脚本?

有马幸生

我正在使用 php 和 XAMPP 创建一个网站。该网站接受来自用户的 python 文件,然后它需要运行该 python 文件并接收该文件的所有输出。我已经能够通过在 php 文件中使用 shell_exec() 来完成此操作。

问题是获取用户输入的 python 文件。这些文件同时使用 input() 和 sys.stdin.readline() 函数。我需要能够自动发送 python 文件“用户输入”(有时是几个输入)。我确切地知道我需要发送什么和多少“用户输入”,所以这不需要我的干预。

我认为一种方法是改变提交的 python 文件的输入方式。如果我能做到这一点,那么我会将每个输入存储在一个将被迭代的列表中。不幸的是,我无法在提交的文件中编辑实际的输入命令,所以这必须在提交的 python 文件的顶部完成。

下面是 php 文件如何执行 python 文件。

$command = "python python_script.py";
$output = shell_exec($command);
echo nl2br($output);

我尝试使用 echo 函数(使用 && 表示多个输入),但唯一的问题是 echo 函数无法在每次回声后按 Enter 键。然而,这确实成功地将输入与输入提示匹配。下面是一个例子。python_script.py 应该接受输入然后打印它,但是 cmd 显示了这个:

C:\>(echo 2 && echo 3) | python python_script.py 
number one: 2
number two: 3

C:\>

现在我正在尝试在单独的 python 文件中使用子进程函数。问题又是“用户输入”;我不知道如何发送输入。类似问题的解决方案对我不起作用,但我确定这是由于我对子流程功能缺乏了解。

我认为子流程是我最好的选择,但我也很感激任何使用 php 的建议。我也希望不必为此问题创建批处理文件。

有马幸生

我找到了解决这个问题的方法。

要将输入从一个 python 文件发送到另一个(python 3.7 版),我使用了三个文件。

  1. 用于运行子进程的文件
  2. 输出文件(非常简单)
  3. 需要输入的文件

以下是与上述顺序相同的三个文件。

您不需要打印输出,但我将在文件示例下方包含终端输出。子进程文件:

from subprocess import Popen,PIPE

p1 = Popen(["python","output_file.py"], stdout=PIPE)
p2 = Popen(["python", "input_file.py"], stdin=p1.stdout, stdout=PIPE)
p1.stdout.close()

output = p2.communicate()[0]

print(output)

输出文件非常简单,可能有办法解决它。不过,这是我的版本:

print(1)
print(2)
print('My String')

输入文件需要对数字进行类型转换。

i = input('Enter a number: ')
j = input('Enter another: ')
k = int(i) + int(j)
print(k)
l = input('Tell me something. ')
print(l)

这是终端输出:

b'Enter a number: Enter another: 3\r\nTell me something. My String!\r\n'

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将 php 脚本中的 SQL 数据增益发送到 python 脚本?

来自分类Dev

将消息发送到Python脚本

来自分类Dev

Python将变量从一个脚本发送到另一个脚本

来自分类Dev

将值从一个 python 脚本发送到另一个已经运行的脚本

来自分类Dev

将python脚本中的xml文件发送到php脚本以进行下载

来自分类Dev

Python 3 - 将凭证发送到 PHP 页面的脚本

来自分类Dev

通过CGI将图像从html发送到python脚本

来自分类Dev

将 JSON 从 python 脚本发送到 JQuery

来自分类Dev

Python - 如何将一个脚本的值赋予另一个脚本?

来自分类Dev

从PHP执行Python脚本

来自分类Dev

一个Python脚本将“用户输入”提供给另一个python脚本

来自分类Dev

一个Python脚本将“用户输入”提供给另一个python脚本

来自分类Dev

python脚本将信号发送到同一网络上另一个工作站上的另一个正在运行的python脚本

来自分类Dev

python脚本将信号发送到同一网络上另一个工作站上的另一个正在运行的python脚本

来自分类Dev

如何将JSON发送到我的python脚本?

来自分类Dev

如何将 VBA 输出发送到 Python 脚本?

来自分类Dev

从另一个脚本中执行python脚本后如何动态导入变量

来自分类Dev

将HTML输入发送到PHP Twilio脚本

来自分类Dev

将HTML输入发送到PHP Twilio脚本

来自分类Dev

无法从php执行python脚本

来自分类Dev

通过php执行python脚本

来自分类Dev

无法从php执行python脚本

来自分类Dev

无法从php执行python脚本

来自分类Dev

Python脚本如何执行?

来自分类Dev

Python脚本如何执行?

来自分类Dev

Python:如何将ARGV参数传递给另一个脚本?

来自分类Dev

如何使用 Retrofit2 将原始数据发送到 Python 脚本

来自分类Dev

通过ajax将表单中的变量(POST)发送到另一个PHP脚本(GET)

来自分类Dev

使用子进程调用/ popen从另一个python脚本执行python脚本

Related 相关文章

  1. 1

    如何将 php 脚本中的 SQL 数据增益发送到 python 脚本?

  2. 2

    将消息发送到Python脚本

  3. 3

    Python将变量从一个脚本发送到另一个脚本

  4. 4

    将值从一个 python 脚本发送到另一个已经运行的脚本

  5. 5

    将python脚本中的xml文件发送到php脚本以进行下载

  6. 6

    Python 3 - 将凭证发送到 PHP 页面的脚本

  7. 7

    通过CGI将图像从html发送到python脚本

  8. 8

    将 JSON 从 python 脚本发送到 JQuery

  9. 9

    Python - 如何将一个脚本的值赋予另一个脚本?

  10. 10

    从PHP执行Python脚本

  11. 11

    一个Python脚本将“用户输入”提供给另一个python脚本

  12. 12

    一个Python脚本将“用户输入”提供给另一个python脚本

  13. 13

    python脚本将信号发送到同一网络上另一个工作站上的另一个正在运行的python脚本

  14. 14

    python脚本将信号发送到同一网络上另一个工作站上的另一个正在运行的python脚本

  15. 15

    如何将JSON发送到我的python脚本?

  16. 16

    如何将 VBA 输出发送到 Python 脚本?

  17. 17

    从另一个脚本中执行python脚本后如何动态导入变量

  18. 18

    将HTML输入发送到PHP Twilio脚本

  19. 19

    将HTML输入发送到PHP Twilio脚本

  20. 20

    无法从php执行python脚本

  21. 21

    通过php执行python脚本

  22. 22

    无法从php执行python脚本

  23. 23

    无法从php执行python脚本

  24. 24

    Python脚本如何执行?

  25. 25

    Python脚本如何执行?

  26. 26

    Python:如何将ARGV参数传递给另一个脚本?

  27. 27

    如何使用 Retrofit2 将原始数据发送到 Python 脚本

  28. 28

    通过ajax将表单中的变量(POST)发送到另一个PHP脚本(GET)

  29. 29

    使用子进程调用/ popen从另一个python脚本执行python脚本

热门标签

归档