我是Python新手,正在为我的学位做最后的项目。我想编写一个Python脚本,它将读取数值(比如:21、23、28等),并将其与脚本中的值进行比较。如果值匹配,它应该执行另一个python脚本。一切似乎都正常工作,但文件中的红色值不会改变匹配条件。脚本每次执行ELSE语句而不是IF语句,而条件是真的。在
这是我的代码:
import time
import sys
import os
check_period = 2
fo = open("/home/pi/thermometer1.txt", "r+")
str = fo.readline();
fo.close()
while True:
fo = open("/home/pi/thermometer1.txt", "r+")
str = fo.readline();
if str < 25 :
os.system("python /home/pi/servo/servo1/servo6.py")
print str
fo.close()
else:
os.system("python /home/pi/servo/servo1/servo1.py")
print str
fo.close()
time.sleep(check_period)
还有一个问题是如何编辑这个脚本,它将一个.txt文件与类似的数值进行比较。23到另一个.txt文件的数值类似。27如果条件满足,则执行另一个python脚本(类似于上面的代码)。提前感谢所有的评论。在
从文件中读取的是字符串,而不是整数。由于它们是不同的(不可比较的)类型,因此任何比较都会导致基于类型1的一致但任意的值。显然,字符串被视为大于整数(对于Cpython,其他实现可能表现不同)。在
您需要用字符串构造一个整数:
当我们在这里的时候,有更好的方法来迭代一个文件:
^{pr2}$在python3.x上,除了
==
之外的任何比较都将引发异常。从文本文件中读取时,会得到字符串。与int相比,字符串的计算结果总是
False
。而不是它将字符串类型存储在
^{pr2}$str
中,请执行以下操作:但请注意,如果行包含的值不能是
int
,则会出现错误。在顺便说一句,您不需要在代码中的任何一行后面放分号,而且应该避免变量名
str
,因为它是Python的内置类型。在相关问题 更多 >
编程相关推荐