我已经完成了我的Python脚本编写工作,它在命令行中完美运行。
我的代码:
#!C:/Python36/python
import csv
import sys
import cgi
import cgitb
import re
import webbrowser
cgitb.enable()
data = {i[0]:i[1:] for i in csv.reader(open('students.csv'))}
data2 = {j[0]:j[1:] for j in csv.reader(open('subjects.csv'))}
i = 0
while i == 0:
Name = input("Please provide your name (q to quit): ")
if Name == 'q':
i = 1
else:
Subject = input("Please provide your Subject: ")
if Subject in data[Name]:
if Subject in data2.keys():
print ("you are registered - your VM is)
url = str(data2[Subject])
url2 = re.search("(?P<url>https?://[^\s]+)", url).group("url")
url2 = url2[:-2]
webbrowser.open(url2)
else:
print("The VM for the subject doesn't exist")
else:
print("you are not registered")
我需要做的最后一步是将此脚本调整到我的Web界面。我真的不熟悉php所以我无法在php中重写这个脚本所以我试图直接从php执行这个脚本,使其在浏览器中使用:
<?php
$command = escapeshellcmd('python C:\\wamp64\\wwww\\test.py');
$output = shell_exec($command);
echo $output;
?>
或
<?php
echo shell_exec('python c:\\wamp64\\www\\test.py');
?>
第一个没有显示任何东西,而第二个给我一个错误,因为&#34;输入&#34;功能所以我试过这个:
<?php
$Name = '';
echo shell_exec('python c:\\wamp64\\www\\test.py $Name');
?>
它仍然无效。 Error
我分析了类似的问题,但没有真正找到解决方案。因此,我提出了解决方案 - 当我按下&#34;提交&#34;按钮,它应该为我打开Windows命令行。 Example
使用shell_exec的第二个PHP代码应该可以工作,但显然它不起作用,因为python和php之间的兼容性问题。 顺便说一下,我为python脚本设置了所有权限和系统路径 我已经搜索了很多解决方案但是并没有真正成功。
您能否给我任何想法,或者可以做出&#34;输入&#34;用php正常运行吗?
谢谢。