Python在读取行时进入无限循环
我想用以下代码读取DS18B20传感器数据:Python在读取行时进入无限循环,python,while-loop,readline,Python,While Loop,Readline,我想用以下代码读取DS18B20传感器数据: filepath=“/sys/bus/w1/devices/w1_-bus_-master1/w1_-master_-slaves” 打开(文件路径)作为fp时: 传感器=fp.readline() 而传感器: 打印(“传感器:{}”。格式(Sensor.strip()) 打开(“/sys/bus/w1/devices/”+sensor.strip()+“/w1_slave”)作为fp1: 传感器\数据=fp1.read() 打印(传感器\数据条()
filepath=“/sys/bus/w1/devices/w1_-bus_-master1/w1_-master_-slaves”
打开(文件路径)作为fp时:
传感器=fp.readline()
而传感器:
打印(“传感器:{}”。格式(Sensor.strip())
打开(“/sys/bus/w1/devices/”+sensor.strip()+“/w1_slave”)作为fp1:
传感器\数据=fp1.read()
打印(传感器\数据条())
传感器=fp.readline()
问题是while循环从不走到下一行,而是在第一行继续循环
我错过了什么
另外,我对python非常陌生,这是我的第一个python代码,因为传感器在循环中没有改变,所以请尝试这个
filepath = "/sys/bus/w1/devices/w1_bus_master1/w1_master_slaves"
with open(filepath) as fp:
sensor = fp.readline()
while (sensor):
print("Sensor: {}".format(sensor.strip()))
with open("/sys/bus/w1/devices/" + sensor.strip() + "/w1_slave") as fp1:
sensor_data = fp1.read()
print(sensor_data.strip())
sensor=fp.readline()
由于传感器在回路中没有改变,请尝试此操作
filepath = "/sys/bus/w1/devices/w1_bus_master1/w1_master_slaves"
with open(filepath) as fp:
sensor = fp.readline()
while (sensor):
print("Sensor: {}".format(sensor.strip()))
with open("/sys/bus/w1/devices/" + sensor.strip() + "/w1_slave") as fp1:
sensor_data = fp1.read()
print(sensor_data.strip())
sensor=fp.readline()
正如评论中所讨论的,问题是
传感器
在循环中从未得到更新。它不断循环通过第一个读取值。这可以通过缩进代码的最后一行来纠正
我建议对循环使用。当我们简单地迭代文件处理程序时,我们迭代文件中的行
with open(filepath) as fp:
for sensor in fp:
print("Sensor: {}".format(sensor.strip()))
with open("/sys/bus/w1/devices/" + sensor.strip() + "/w1_slave") as fp1:
sensor_data = fp1.read()
print(sensor_data.strip())
正如评论中所讨论的,问题是传感器
在循环中从未得到更新。它不断循环通过第一个读取值。这可以通过缩进代码的最后一行来纠正
我建议对
循环使用。当我们简单地迭代文件处理程序时,我们迭代文件中的行
with open(filepath) as fp:
for sensor in fp:
print("Sensor: {}".format(sensor.strip()))
with open("/sys/bus/w1/devices/" + sensor.strip() + "/w1_slave") as fp1:
sensor_data = fp1.read()
print(sensor_data.strip())
因为,传感器
在循环内从未更新。它不断循环通过第一个读取值。可能缩进最后一行?是否应该在循环中?它在这里张贴的外部。因此,sensor=fp.readline()
应该再缩进一次吗?是的,它现在可以工作了!感谢you@Austin,请将您的评论作为答案发布。因为,传感器
在循环中从不更新。它不断循环通过第一个读取值。可能缩进最后一行?是否应该在循环中?它在这里张贴的外部。因此,sensor=fp.readline()
应该再缩进一次吗?是的,它现在可以工作了!感谢you@Austin,请将您的评论作为回答。