在 php(网页)中运行 Python 脚本以写入现有的 excel

Posted

技术标签:

【中文标题】在 php(网页)中运行 Python 脚本以写入现有的 excel【英文标题】:Run Python Skript in php (webpage) to write into exisiting excel 【发布时间】:2021-07-04 06:48:50 【问题描述】:

我已经编写了一个 Python 脚本,可以将一些内容写入现有的 Excel 列表 (openpyxl)。我需要开发一个 Web 应用程序,单击按钮后,必须运行正确的 Python 脚本。我在 Windows 计算机上使用服务器和程序。我将不胜感激。

Running Python scripts with Xampp --> 已经完成了。

我不需要网站上的任何输出,我只想执行 .py 文件,即写入我的 Excel 文件。

这是我的 .php 代码:

<?php
   exec('python C:/xampp/htdocs/QMPlan/EU_YES.py');
?>

这是我的 .py 代码:

#!C:/Users/'myUser'/AppData/Local/Programs/Python/Python39/python.exe
import openpyxl

book = openpyxl.load_workbook('ISSDDE.xls')

sheet = book.get_sheet_by_name("General Description")

sheet['B9'] = "Yes"

book.save('ISSDDE.xls')

【问题讨论】:

那不可能是成功运行的Python代码。 chmod +x EU_YES.py 不是有效的 Python。 考虑到您的脚本依赖于相对路径,您需要确保在执行程序时拥有正确的工作目录。当您像这样使用 PHP 运行它时,无法保证工作目录是什么。 好的,那么我必须把“chmod +x EU_YES.py”放在哪里?好的,但这是正确的完整路径...我不知道该怎么做... 您不需要chmod 任何东西,因为您没有尝试将事物作为可执行文件运行。您拥有的“使用 Xampp 运行 Python”说明在这里是一个红鲱鱼,因为您可以通过 PHP 运行 Python 脚本。 您是否收到任何错误消息?如果是这样,与我们分享会很有帮助。 【参考方案1】:

也许exec('python &lt;path-to-your-python-file&gt;') 但这意味着 PHP 与 python 文件在同一台机器上运行。 此外,您不能直接从浏览器运行它,您必须从您的服务器运行此代码。

【讨论】:

我已经用“exec ..”试过了。是的,我从我的服务器启动代码。当我打开我的 .php 页面时,我的 Excel 列表中没有任何反应。如果我单独启动我的 Python 文件,则会进行预期的更改... 听起来你需要好好调试一下。 您是否从您的服务器手动启动 python 文件?您是否在 localhost 上检查它? exec 的输出是什么?如果您使用 Xampp 运行 php,请查看 https://***.com/questions/42704846/running-python-scripts-with-xampp【参考方案2】:

这将假定您也可以在计算机的命令行上成功运行python(即它在PATH 中)。如果不是,您需要将 python 更改为 Python 可执行文件的完整路径,例如C:/Users/User/AppData/Local/Programs/Python/Python39/python.exe.

<?php
// Change directory to where the script is, so any relative paths are correctly resolved
chdir("C:/xampp/htdocs/QMPlan");
// Run the script and print the output, if any.
echo shell_exec("python EU_YES.py");
?>

至于 Python 脚本,您不需要 #! shebang 行或 chmod(这确实是语法错误)。一个普通的脚本应该可以。

import openpyxl

book = openpyxl.load_workbook('ISSDDE.xls')

sheet = book.get_sheet_by_name("General Description")

sheet['B9'] = "Yes"

book.save('ISSDDE.xls')

【讨论】:

不幸的是我仍然没有任何改进......所以我的Python“应用程序”位于“C:/Users/'myUser'/AppData/Local/Programs/Python/Python39/python.exe”和我的py。 “C:/xampp/htdocs/QMPlan/EU_YES.py”中的文件。我是否必须更改 chdir () 中的某些内容?因为我不明白“chdir”是做什么的...... 那么如果您在浏览器中访问该 PHP 文件会发生什么? 没有按预期输出,但 Excel 文件也没有变化... 如果你将print("Hello!") 添加到 Python 文件中,应该会得到输出。 (这是为了测试 Python 脚本是否被执行。) 您可能还希望将error_reporting(E_ALL); 添加到您的 PHP 文件中,并检查 XAMPP 错误日志。

以上是关于在 php(网页)中运行 Python 脚本以写入现有的 excel的主要内容,如果未能解决你的问题,请参考以下文章

Cron作业无法执行写入文本文件的python脚本

如何通过网页运行 Python 脚本? [复制]

在 XAMPP (WINDOWS 8.1) 中作为脚本在 PHP 中运行 Python

如何在另一个目录中运行 python 脚本,而不将脚本写入磁盘?

php fopen 无法打开文件以在 Mac OS X 中写入

在Windows上通过命令窗口运行Python脚本程序