如果来自 php 的调用,python 不会写入

python doesn't write if call from php

我有一个 python 脚本 writetest.py,其中包含以下内容:

print "mark1"
with open("/testfile.txt", "a") as myfile:
    myfile.write("Hello World")
print "mark2"

当我调用 shell 中的脚本时,它起作用并添加了 "Hello World" 和 testfile.txt。当我使用 php exec 命令调用它时,它不会写:

exec('python writetest.py', $output, $return_var);
print_r($output);
print_r($return_var);

打印:

Array ( [0] => mark1 )
1

我的 python 脚本运行但在打开代码处停止。

我认为您的代码中存在引用问题

exec('python writetest.py")

解决该问题后,请重试。 如果还是不行我建议

exec('python writetest.py', $output , $return_var) 

参见:http://php.net/manual/en/function.exec.php

然后通过 print_r 打印输出和 return_var 用于调试

print_r($output);
print_r($return_var);

正如艾恩伯所指出的,这是一个权限问题。我给了网络服务器用户写入权限并且它起作用了