python读取文件打开LED

时间:2016-01-16 10:53:57

标签: python raspberry-pi wiringpi

我试图获取一个python脚本来读取文本文件的内容,如果它是21打开一个LED,但是如果它打开了20,请将其关闭。该脚本还会在屏幕上打印出文本文件的内容。

内容打印输出正常,但LED无法开启。

import wiringpi2
import time

wiringpi2.wiringPiSetupGpio()
wiringpi2.pinMode(17,1)

while 1:
    fh=open("test1.txt","r")
    print fh.read() 
    line = fh.read()
    fh.close()
    if line == "21":
        wiringpi2.digitalWrite(17,1)
    elif line == "20":
        wiringpi2.digitalWrite(17,0)
    time.sleep(2)

1 个答案:

答案 0 :(得分:2)

print fh.read() 

读取文件的全部内容,将文件光标留在文件的末尾,所以当你这样做时

line = fh.read()

没有什么可读的。

改变这个:

fh=open("test1.txt","r")
print fh.read() 
line = fh.read()
fh.close()

到此:

fh=open("test1.txt","r")
line = fh.read()
print line 
fh.close()

我无法测试此代码,因为我没有Raspberry Pi,但该代码将确保line包含文本文件的全部内容。这可能实际上并不可取:如果文件包含任何空格,例如空格或换行符,那么您的if ... else测试将不会像您想要的那样运行。您可以通过执行

来解决这个问题
line = line.strip() 
line = fh.read()

之后

.strip方法剥离任何前导或尾随空格。您也可以传递一个参数来告诉它要剥离的内容,有关详细信息,请参阅the docs