From 7a199322a403ebc02920907fc177c6bf336141a6 Mon Sep 17 00:00:00 2001 From: Yannik Schmidt Date: Sat, 5 Mar 2022 23:46:03 +0100 Subject: [PATCH] additional fallback for legacy txt --- src/main/python/input_backend.py | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/src/main/python/input_backend.py b/src/main/python/input_backend.py index 3000541..b101b9b 100644 --- a/src/main/python/input_backend.py +++ b/src/main/python/input_backend.py @@ -294,7 +294,11 @@ def csvread_txt(path,datapoints,pt,ph,pd,qtTextBrowser): timeutils.time_from_csv, timeformat="%d-%m-%Y_%H:%M") except (UnicodeError, IndexError): - count = csvread_txt_fallback(path,datapoints,pt,ph,pd) + try: + count = csvread_txt_fallback(path,datapoints,pt,ph,pd) + except (IndexError, ValueError): + count = csvread_txt_legacy(path,datapoints,pt,ph,pd) + qtTextBrowser.append(de.info_ig_lines.format(count)) @@ -319,3 +323,26 @@ def csvread_txt_fallback(path,datapoints,pt,ph,pd): timeutils.time_from_csv, timeformat="%d-%m-%Y_%H:%M") return count + +def csvread_txt_legacy(path,datapoints,pt,ph,pd): + count = 0 + with open(path) as f: + for l in f: + if any(s in l for s in [">>", "----", "Uhrzeit"]): + count += 1 + continue + else: + row_arg = list(map(lambda s:s.replace(" ","").replace(",","."),l.split("\t"))) + row = {"temp":None,"hum":None,"taupunkt":None,"datetime":None} + + # datetime, cutoff :SS at the end # + row["datetime"] = "{date}_{time}".format(date=row_arg[1], time=row_arg[2])[:-3] + row["temp"] = float(row_arg[3]) + row["hum"] = float(row_arg[4]) + row["taupunkt"] = float(row_arg[5]) + parse_line(datapoints, row, 'datetime', + [('temp',pt), ('hum',ph), ('taupunkt',pd)], + timeutils.time_from_csv, + timeformat="%d-%m-%Y_%H:%M") + + return count