gpt4 book ai didi

php - 从 php 运行 python 文件不会生成输出文件

转载 作者:行者123 更新时间:2023-11-30 23:40:30 25 4
gpt4 key购买 nike

我从 php 运行另一个文件时遇到问题。我希望我的 php 参数是运行调用另一个文件本身的 python 文件的输出。

这是我的 php 文件:

<?php
if (isset($_POST['submit'])) {
$params = solve();
}

function solve() {
exec("python array.py", $output);
return $output;
}
?>

如果 array.py 很简单:

if __name__ == "__main__":
print 1
print 2
print 3
print 4

我的输出将得到 1,2,3,4,但是一旦我将 array.py 更改为调用 os.system 的以下文件,我就什么也得不到。所以新的 array.py 是:

import os

def main():
os.system("python test.py") #test.py creates tmp.txt with 4 lines w/ values 1,2,3,4


def output():
f = open("tmp.txt", "r")
myReturn = []
currentline = f.readline()

while currentline:
val = currentline[:-1] #Getting rid of '\n'
val = int(val)
myReturn = myReturn + [val]
currentline = f.readline()
f.close()
return myReturn


if __name__ == "__main__":
main()
o = output()
print o[0]
print o[1]
print o[2]
print o[3]

此外,如果我只运行 test.py,输出是文件 tmp.txt:

 1
2
3
4

所以现在,当我运行我的 php 文件时,输出 tmp.txt 甚至没有在目录中创建,因此我也没有从我的 php 中获得任何输出。我不确定为什么会发生这种情况,因为当我自己运行 array.py 时,我得到了所需的输出,并且创建了 tmp 文件。

编辑:我忘了包括:上面导入操作系统。

最佳答案

将执行更改为:

exec("python array.py 2>&1", $output)

或者检查Web服务器或PHP错误日志。这会将错误输出从 python 脚本返回到您的 php 脚本(通常不是您在生产中想要的)。

关于php - 从 php 运行 python 文件不会生成输出文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12623868/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com