我正在尝试编写一个单行python脚本,以便从PHP文档中从linux终端执行。问题是它有for循环和注释,我不知道如何将它变成一行。这是脚本:
#!/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>
答案 0 :(得分:1)
这是很多代码要做的很少!您当然不需要保留注释,如果您只设置一个引脚,那么您不需要循环。
你可以逃脱:
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来完成整个事情。