import re import datetime import time def read_one_thermo(filename): try: NO_OF_DECIMALS = 3 for x in range(0, 3): textfile = open(filename, 'r') filetext = textfile.read() textfile.close() if 'YES' in filetext: matches = re.findall("t=(\-?)(\d+)", filetext) sign = -1 if matches[0][0] == '-' else 1 whole_reading = matches[0][1] first_part = matches[0][1][0:-NO_OF_DECIMALS] second_part = matches[0][1][-NO_OF_DECIMALS:] first_part = '0' if first_part == '' else first_part # with open("/mnt/zoblakdata/w1_sensor_log_sent","a") as log: # log.write(datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S') + ' | filename: ' + filename + ' | reading: ' + str(x+1) + '\n' ) # log.write(filetext) # log.write("--------\n") result = (int(first_part) + (int(second_part) / (10.0 ** NO_OF_DECIMALS) )) * sign if result >= -30.0 and result <= 60.0: return result # if x == 2: # with open("/mnt/zoblakdata/w1_sensor_log_probable_exception","a") as log2: # log2.write(datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S') + ' | filename: ' + filename + ' | reading: ' + str(x+1) + '\n' ) # log2.write(filetext) # log2.write("--------\n") time.sleep(5) print 'error' print e return -101.0 except Exception as e: # with open("/mnt/zoblakdata/w1_sensor_log_exception","a") as log3: # log3.write(datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S') + ' - exception!\n') # log3.write("--------\n") print 'errror' print e return -100.0 def read_many_thermo(filenames): result = [] for filename in list(filenames): if filename is None: continue result.append(read_one_thermo(filename)) return result