python读取文件以打开LED



我正在尝试让python脚本读取文本文件的内容,如果是21,则打开LED,但如果是20,则将其关闭。该脚本还会在屏幕上打印出文本文件的内容。

内容打印输出一切正常,但指示灯未亮起。

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)
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 方法去除任何前导或尾随空格。你也可以给它传递一个参数,告诉它要剥离什么,有关详细信息,请参阅文档。

最新更新