我有一个函数来收集温度(来自文本文件的值),它使用一个部分预定义的路径。然而,如果温度传感器没有被加载(断开),有时路径不存在。如果路径不可用,如何设置条件或异常以跳过循环?
我想用continue,但我不知道该用什么条件。
def read_all():
base_dir = '/sys/bus/w1/devices/'
sensors=['28-000006dcc43f', '28-000006de2bd7', '28-000006dc7ea9', '28-000006dd9d1f','28-000006de2bd8']
for sensor in sensors:
device_folder = glob.glob(base_dir + sensor)[0]
device_file = device_folder + '/w1_slave'
def read_temp_raw():
catdata = subprocess.Popen(['cat',device_file], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
out,err = catdata.communicate()
out_decode = out.decode('utf-8')
lines = out_decode.split('\n')
return lines
最佳答案
使用os.path.isfile和os.path.isdir()进行检查。
for sensor in sensors:
device_folders = glob.glob(base_dir + sensor)
if len(device_folders) == 0:
continue
device_folder = device_folders[0]
if not os.path.isdir(base_dir):
continue
device_file = device_folder + '/w1_slave'
if not os.path.isfile(device_file)
continue
....