73 lines
2.1 KiB
Python
73 lines
2.1 KiB
Python
# -*- 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__()
|
|
|
|
|
|
|