import csv #python.exe -m pip install csv import datetime as dt #python.exe -m pip install datetime import serial #pyserial module have to be installed (#python.exe -m pip install pyserial) #Setup com port value com_port = str(input("Enter COM port id (default = COM1): ") or "COM1") speed = int(input("Enter COM port speed (default = 9600): ") or 9600) delay = int(input("Enter the delay (default = 1sec): ") or 1) #Delay value for sleep #Initializing COM port serial_param = {'com': com_port, 'speed': speed, 'timeout': delay } #Sending command via Serial port to set weight value to 2.123g print(serial_param['com'], serial_param['speed']) serial_conn = serial.Serial(serial_param["com"], serial_param["speed"], timeout = serial_param["timeout"]) print(serial_conn.portstr) #serial_conn.write(b'G2\r\n') weight_time = dt.datetime.now() #Define timestamps #Create CSV file in format of result-hour_mins_secs_year_month_day.csv with open('result-'+weight_time.strftime("%H_%M_%S_%Y_%m_%d")+'.csv', 'a', newline='') as csvfile: fieldnames = ['Time', 'Weight'] #Define columns' header writer = csv.DictWriter(csvfile, fieldnames=fieldnames, dialect='excel') writer.writeheader() #Write headers of colunms "Time" and "Weight" #Reading data from COM port while True: serial_conn.write(b'G3\r\n') #Sending command G3 in bytes scale_data = serial_conn.readlines() str_scale = ''.join(str(e) for e in scale_data) #Convert list to string to strip special characters weight_time = dt.datetime.now() writer.writerow({'Time': weight_time.strftime("%H:%M:%S"), 'Weight': str_scale[2:-5]}) #Write data print(weight_time.strftime("%H:%M:%S"), str_scale[2:-5]) #Strip 2 symbols on right and 5 symbols on left ####################For future use. Strip works fine, just file saved only single value#################### #for i in scale_data: # i = i.decode('UTF-8') # i = i.strip('\n') # writer.writerow({'Time': weight_time.strftime("%H:%M:%S"), 'Weight': i}) #Write data # print(weight_time.strftime("%H:%M:%S"), i) ##############################################################################################