用for循环创建Python单行程序

时间:2015-09-20 20:51:58

标签: python

我正在尝试编写一个单行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>&nbsp;
<button class="btn" name="LightOFF">Light OFF</button><br><br>
</form> 


</html>

1 个答案:

答案 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来完成整个事情。