【问题标题】:Generate an output file with python inside a php script在 php 脚本中使用 python 生成输出文件
【发布时间】:2013-10-03 19:31:46
【问题描述】:

我需要帮助来弄清楚如何在 php 脚本中的 python 中生成输出文件。

所以问题来了: 我有一个允许用户上传文件的 php 脚本。 这些文件存储在服务器中。 之后,这些文件将在 python 脚本上运行,并将生成输出文件。 之后,php 脚本将获取这些输出文件,并向用户发送电子邮件。 我想让它在用户上传并单击提交按钮后自动发送给用户。

我已经完成了所有这些,直到尝试在 php 脚本中调用 python 脚本 php 脚本中的 python 脚本不执行生成输出文件的函数。

这是我用来调用 bash 脚本的函数:

system('bash /data/home/rxs061/public_html/test.sh');

我也用过函数 exec();和 shell_exec(); 但不起作用。 这里的问题,函数没有在命令行运行,所以不会生成输出文件。

这是在 bash 脚本 (test.sh) 中: python /home/rxs061/public_html/test.py outfile=$PWD/test.out echo "$PWD/"

这里的问题是它不想生成“test.out”

这是在 python 脚本 (test.py) 中: import sys outfile = open('test.out', 'w') outfile.write('it worked\n') outfile.close()

这与权限无关。 您如何将所有这些放在一个 php 脚本中? 或者还有其他解决方案吗? 或者如何让它输出文件???

【问题讨论】:

  • test.sh 不是 Python 脚本,而是 bash 脚本(它本身运行 Python 脚本)。
  • 为什么不用python发送邮件?让一切异步
  • 更重要的是:当您运行test.sh 时,$PWD 是什么?你希望它是什么?
  • 最后,“不起作用”是什么意思? “不在服务器/unix shell 上运行”是什么意思?实际发生了什么?
  • @abarnert $PWD 是路径。所以如果我运行 exec('bash /data/home/rxs061/public_html/test.sh') 或 shell_exec("bash /data/home/rxs061/public_html/test.sh") 或 system("bash /data/ home/rxs061/public_html/test.sh"),不会生成 test.sh 中的预期输出文件,即 test.out。因为它只有在我在命令行中运行“bash /data/home/rxs061/public_html/test.sh”时才能生成。

标签: php python bash shell exec


【解决方案1】:

哦,我得到了所有修复,这与许可有关。 在我执行 chmod 777 后,一切都修复了

【讨论】:

    猜你喜欢
    • 2011-08-06
    • 1970-01-01
    • 1970-01-01
    • 2022-01-16
    • 2021-11-25
    • 1970-01-01
    • 2020-10-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多