python/PyNetAssistant/NetDataSplit.py

73 lines
2.1 KiB
Python
Raw Normal View History

# -*- 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__()