运行python脚本并通过PHP获取其输出是一个坏主意吗?
我正在使用php运行python脚本,并使用json.dump获取其输出,并显示在我的php页面上。我觉得它比在python idle中运行时慢。如果我正确理解了您的问题,那么它的速度也就不足为奇了,因为从PHP调用python脚本,而不是从CLI调用它,会增加您的PC必须执行的操作。考虑这一点:第一个PHP必须创建一个shell来调用脚本,然后等待它完成(例如等待出现在缓冲区中的退出代码),从缓冲区抓取所有的东西,然后将其推到输出缓冲区中,然后刷新输出缓冲区,这样数据实际上会显示在页面上。除此之外,您的输出数据将被传输两次,首先从Python传输到PHP,然后从PHP传输到浏览器运行python脚本并通过PHP获取其输出是一个坏主意吗?,php,python,Php,Python,我正在使用php运行python脚本,并使用json.dump获取其输出,并显示在我的php页面上。我觉得它比在python idle中运行时慢。如果我正确理解了您的问题,那么它的速度也就不足为奇了,因为从PHP调用python脚本,而不是从CLI调用它,会增加您的PC必须执行的操作。考虑这一点:第一个PHP必须创建一个shell来调用脚本,然后等待它完成(例如等待出现在缓冲区中的退出代码),从缓冲区抓取所有的东西,然后将其推到输出缓冲区中,然后刷新输出缓冲区,这样数据实际上会显示在页面上。除此
此外,处理速度取决于调用Python脚本的方法-有几种方法可以实现这一点,其中一些方法的开销比其他方法要大。您需要告诉我们为什么要这样做,而不是简单地运行脚本。我正在建一个网站,需要Python代码的一些输出。我使用php,因为我不太熟悉Flask或Django。没错。我认为另一个原因可能是我使用了print(json.dump(list_name)),print语句是另一种增加执行时间的开销。我可以不打印就完成吗?只需跳过JSON转储并直接使用输出。我是这样做的(允许后台处理和交互式shell):
f=trim(`mktemp`);passthru($cmd.($show_output?;tee$f):“>$f”)($run_in_background?&':”);在后台返回$run\u$f:修剪(`cat$f;rm-rf$f`)代码>这里的技巧是将命令的输出写入一个临时文件,然后读取该文件。如果不需要后台处理或交互式shell,只需执行以下操作:$res=`python3myscript.py`在Python脚本中,只需使用print
。不客气:)小错误,顺便说一句,它必须是$res=`python3myscript.py`代码>。如果您觉得它回答了您的问题,请将其标记为已接受的答案,以便其他人可以看到存在“解决方案”。