我试图编写一行python脚本从PHP文档从linux终端执行。问题是,它有循环和评论,我不知道如何使它成为一行。脚本如下:
#!/usr/bin/env python
# Import required Python libraries
import RPi.GPIO as GPIO
import time
# Use BCM GPIO references instead of physical pin numbers
GPIO.setmode(GPIO.BCM)
# init list with pin numbers
pinList = [15]
# loop through pins and set mode and state to 'low'
for i in pinList:
GPIO.setwarnings(False)
GPIO.setup(i, GPIO.OUT)
GPIO.output(i, GPIO.HIGH)
def trigger() :
for i in pinList:
GPIO.output(i, GPIO.HIGH)
print "on"
# GPIO.cleanup()
break
try:
trigger()
except KeyboardInterrupt:
print " Quit"
# Reset GPIO settings
GPIO.cleanup()
我从一个PHP文档运行这个,看起来像下面的:
<html>
<head>
<meta charset="UTF-8" />
<link rel="stylesheet" type="text/css" href="css/style.css">
</head>
<?php
if (isset($_POST['LightON']))
{
exec("sudo python /home/pi/lighton.py");
}
if (isset($_POST['LightOFF']))
{
exec("sudo python /home/pi/lightoff.py");
}
?>
<form method="post">
<button class="btn" name="LightON">Light ON</button>
<button class="btn" name="LightOFF">Light OFF</button><br><br>
</form>
</html>
这么多代码做的却很少!你当然不需要保留注释,如果你只设置一个引脚,那么你就不需要循环。
你可以这样做:
python -c "import RPi.GPIO as GPIO ; GPIO.setmode(GPIO.BCM) ; GPIO.setup(15, GPIO.OUT) ; GPIO.output(15, GPIO.HIGH)"
如果你需要做比这更复杂的事情,那么你应该使用脚本或使用一些Flask来将脚本作为web服务运行。更好的方法是使用Python + Flask。