从txt读取数值。文件并将其与条件Python进行比较

2024-09-29 21:36:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我是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脚本(类似于上面的代码)。提前感谢所有的评论。在


Tags: 文件代码importtxt脚本homecloseos
2条回答

从文件中读取的是字符串,而不是整数。由于它们是不同的(不可比较的)类型,因此任何比较都会导致基于类型1的一致但任意的值。显然,字符串被视为大于整数(对于Cpython,其他实现可能表现不同)。在

您需要用字符串构造一个整数:

int_from_str = int(fo.readline())

当我们在这里的时候,有更好的方法来迭代一个文件:

^{pr2}$

在python3.x上,除了==之外的任何比较都将引发异常。

从文本文件中读取时,会得到字符串。与int相比,字符串的计算结果总是False。而不是

str = fo.readline()

它将字符串类型存储在str中,请执行以下操作:

^{pr2}$

但请注意,如果行包含的值不能是int,则会出现错误。在

顺便说一句,您不需要在代码中的任何一行后面放分号,而且应该避免变量名str,因为它是Python的内置类型。在

相关问题 更多 >

    热门问题