通过打开Windows命令行,通过php执行python脚本

通过打开Windows命令行,通过php执行python脚本,php,python,cmd,Php,Python,Cmd,我已经完成了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

我已经完成了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")
#!C:/Python36/python
导入csv
导入系统
导入cgi
进口cgitb
进口稀土
导入网络浏览器
cgib.enable()
data={i[0]:csv.reader(open('students.csv'))中i的i[1:]
data2={j[0]:csv.reader(open('subjects.csv'))中j的j[1:]
i=0
当i==0时:
Name=输入(“请提供您的姓名(q退出):”)
如果名称=='q':
i=1
其他:
主题=输入(“请提供您的主题:”)
如果数据中的主题[名称]:
如果data2.keys()中的主题:
打印(“您已注册-您的虚拟机已注册)
url=str(数据2[主题])
url2=re.search((?Phttps?://[^\s]+),url.group(“url”)
url2=url2[:-2]
webbrowser.open(url2)
其他:
打印(“主题的虚拟机不存在”)
其他:
打印(“您未注册”)
我需要做的最后一步是将此脚本调整到我的web界面。我对php不太熟悉,因此无法用php重写此脚本,因此我尝试直接从php执行此脚本,以使其在浏览器中工作,方法是使用:

<?php 
$command = escapeshellcmd('python C:\\wamp64\\wwww\\test.py');
$output = shell_exec($command);
echo $output;
?>


第一个没有显示任何内容,而第二个由于“输入”函数而给我一个错误,因此我尝试了以下方法:

<?php 
$Name = '';
echo shell_exec('python c:\\wamp64\\www\\test.py $Name');
?>

它仍然不起作用。

我分析了类似的问题,但并没有真正找到解决方案。正因为如此,我想出了解决方案——当我按下“提交”按钮时,它应该会为我打开Windows命令行

第二个php代码使用shell_exec,应该可以工作,但显然由于python和php之间的兼容性问题,它不能工作。 顺便说一下,我为python脚本设置了所有权限和系统路径 我已经寻找了很多解决方案,但并没有真正成功

你能给我一些想法吗?或者也许可以用php使“输入”功能正常运行

多谢各位

<?php 
$Name = '';
echo shell_exec('python c:\\wamp64\\www\\test.py $Name');
?>