# -*- coding: utf-8 -*- """ Created on Tue May 28 15:40:48 2024 @author: WANGXIBAO """ # -*- coding: utf-8 -*- import csv import os import re import time class GetDataTF(): # 读取费加罗或者自定义数据 def __init__(self, parent=None): super().__init__() self.indOfReturn = 0 self.TIME_FORMAT = "%Y-%m-%d %H:%M:%S" self.headStr = "" self.rowTitle = [] self.csv_buffer = [] def SetConfig(self, config_in): self.regex = re.compile(config_in[0]) # 正则表达 self.headStr = config_in[1] self.rowTitleStr = config_in[2] # print(self.rowTitleStr) self.rowTitle = self.rowTitleStr.split(',') def Transdata(self, data): if data[:2] == self.headStr: self.data2csv = self.regex.findall(data) returnData = float(self.data2csv[self.indOfReturn]) print("returnData", returnData) return returnData else: return "noNum" def SaveCsv(self, filenameCsv, num): # 打开一个文件用于写入,如果文件不存在则创建 # 增加num 写入文件间隔 if os.path.isfile(filenameCsv) == 0: # 文件为空,需要写入表头 with open(filenameCsv, mode='w', newline='') as file: writer = csv.writer(file) writer.writerow(self.rowTitle) else: timeCrvt = time.strftime(self.TIME_FORMAT, time.localtime()) self.data2csv.insert(0, timeCrvt) print(self.data2csv) self.csv_buffer.append(self.data2csv) if len(self.csv_buffer) >= num: with open(filenameCsv, mode='a', newline='') as file: # 创建一个写入器对象 writer = csv.writer(file) # 写入数据行 writer.writerows(self.csv_buffer) self.csv_buffer.clear() def IndOfReturn(self, ind): self.indOfReturn = ind class HexData2Num(): def __init__(self): super().__init__()