将数字变量从PHP传递给Python

时间:2018-04-24 01:32:47

标签: php python variables integer

我已经设置了一个简单的网页,根据按下的按钮打开LED特定的持续时间。每个按钮当前调用一个不同的python文件,但除了几个变量之外,脚本都是相同的。我想将一个变量从PHP传递给Python3,它告诉单个脚本打开哪个指示灯以及打开多长时间。我看过的所有YouTube视频传递变量都与网页相关,而不是机器人。我可以让PHP传递一个单词并打印该单词,但是当我尝试将一个整数传递给Python时,它每次都会被卡住。

以下情况应打开连接到GPIO 7的LED持续5秒,但没有任何反应。如果我将Pin留作数字并且只将持续时间作为变量,则它会亮起,但永远不会消失,所以我知道它正在运行脚本。

如何让Python将变量作为数学数字而不仅仅是单词或字符?谢谢。

PHP代码:

if(isset($_GET['test2']))
{
exec("sudo python /var/www/html/paramtest.py '7' '5'");
echo "test button 2";
}

Python代码:

import sys
from time import sleep
import RPi.GPIO as GPIO

GPIO.setmode(GPIO.BOARD)
GPIO.setup(7, GPIO.OUT)
GPIO.setup(11, GPIO.OUT)
GPIO.setup(13, GPIO.OUT)

x = sys.argv[1]
y = sys.argv[2]

GPIO.output(x, True)
sleep(y)
GPIO.output(x, False)
GPIO.cleanup()
print "done"

1 个答案:

答案 0 :(得分:0)

假设我没有误解这个问题,你只需要将包含你的号码的字符串明确地转换为int

要做到这一点,您可以像这样简单地使用int()

x = int(x) 

如果需要,您还可以指定输入字符串所在的基础作为第二个参数,如下所示:

y = int(y,10)

如果y是包含基数为10的数字的字符串。

如果您需要有关此方法或其他方法的更多详细信息,也可以参考Python 3 docs