From 92fbaf3ceb3ad6c5b122f9b98e829cca4eb66b14 Mon Sep 17 00:00:00 2001 From: Fisch Date: Mon, 4 Oct 2021 18:53:08 +0200 Subject: [PATCH] add arguments for input and output file --- logdata_visualization/logfix.py | 39 ++++++++++++++++++++++----------- 1 file changed, 26 insertions(+), 13 deletions(-) diff --git a/logdata_visualization/logfix.py b/logdata_visualization/logfix.py index 0806a2e..3fbafae 100644 --- a/logdata_visualization/logfix.py +++ b/logdata_visualization/logfix.py @@ -1,13 +1,22 @@ import numpy as np from datetime import datetime import time +import argparse + +parser = argparse.ArgumentParser(description='Copys, renames and fixes logfiles written by bobbycar sd logger.') +parser.add_argument('input', type=argparse.FileType('r')) +parser.add_argument('output', nargs='?', type=argparse.FileType('w')) +args = parser.parse_args() ok=True -inputFilename='LOG00251.TXT' +inputFilename=args.input.name +outputFilename=None +if args.output is not None: + outputFilename=args.output.name -print("Filename: "+str(inputFilename)) +print("Input Filename: "+str(inputFilename)) with open(inputFilename, 'r') as reader: lines = reader.readlines() @@ -34,7 +43,7 @@ linesSize = [len(x.split(',')) for x in lines] #count arraysize for every datali linesOK = np.array(linesSize)==headerSize #mask for okay lines (valid for data lines) timestamp=int(lines[0].split('TIMESTAMP:')[1]) #timestamp when file was created -#outputFilename= + print("Found "+str(len(lines))+" lines") @@ -44,7 +53,8 @@ print(str(len(datalinesOK))+" Datalines OK") print("Header Size is "+str(headerSize)) filetime = time.strftime('%Y%m%d_%H%M%S', time.localtime(timestamp)) -outputFilename = filetime+".csv" +if outputFilename is None: + outputFilename = filetime+".csv" #is_dst(datetime(2019, 4, 1), timezone="US/Pacific") print("Timestamp:"+str(timestamp)+" -> "+str(filetime)) @@ -55,13 +65,16 @@ print("Local Time:"+time.strftime('%A, %Y-%m-%d %H:%M:%S', time.localtime(timest print("Writing to: "+str(outputFilename)) linesWritten = 0 -with open(outputFilename, 'w') as writer: - for i,line in enumerate(lines): - if i!=0 and (commentlines[i] or linesOK[i]): - writer.write(line+"\n") - linesWritten+=1 - else: - print("Skipped "+str(i)+": "+str(line)) - -print(str(linesWritten)+" lines written to "+str(outputFilename)) +if ok: + with open(outputFilename, 'w') as writer: + for i,line in enumerate(lines): + if i!=0 and (commentlines[i] or linesOK[i]): + writer.write(line+"\n") + linesWritten+=1 + else: + print("Skipped "+str(i)+": "+str(line)) + + print(str(linesWritten)+" lines written to "+str(outputFilename)) +else: + print("Failed!")