parent
7ffa190093
commit
1f8e29f7c1
@ -0,0 +1,138 @@ |
||||
import numpy as np |
||||
from myconfig import DATA_DIR,OUTPUT_DIR |
||||
from tools.mylogger import log |
||||
from pathlib import Path |
||||
import time |
||||
# from handheld import HandHeldPath |
||||
class GatherData(object): |
||||
"""对数据进行汇总后分析 csv""" |
||||
def __init__(self, ): |
||||
super(GatherData, self).__init__() |
||||
self.dir = OUTPUT_DIR |
||||
self.extname = ".csv" |
||||
|
||||
def setDir(self, fpath): |
||||
self.dir = fpath |
||||
pass |
||||
|
||||
def setExtname(self, extname): |
||||
self.extname = extname |
||||
pass |
||||
|
||||
def getChildDirs(self, ): |
||||
''' |
||||
按时间排放,每个目录下有五个文件 Esky....Rs |
||||
文件直接保存到 output下的五个文件 Esky ..... Rs |
||||
''' |
||||
childdirs = [] |
||||
for path in Path(self.dir).iterdir(): |
||||
# if path.is_dir(): |
||||
# print(path) |
||||
if not path.is_dir(): |
||||
continue |
||||
childdirs.append(path) |
||||
return childdirs |
||||
pass |
||||
|
||||
def gather_handheld(self, ): |
||||
log.info(f" ",__name__,'gather_handheld') |
||||
childDirs = self.getChildDirs() |
||||
for cdir in childDirs: |
||||
tmp_path:Path = cdir.joinpath("Lw"+self.extname) |
||||
self.transfer_data(tmp_path) |
||||
tmp_path:Path = cdir.joinpath("Rs"+self.extname) |
||||
self.transfer_data(tmp_path) |
||||
pass |
||||
|
||||
def transfer_data(self, fpath:Path): |
||||
log.info(f" ",__name__,'transfer_data') |
||||
log.info(fpath) |
||||
old_path:Path = fpath |
||||
new_path:Path = self.dir.joinpath( old_path.stem + self.extname) |
||||
if not new_path.exists(): |
||||
new_path.touch() |
||||
if old_path.exists(): |
||||
count = 0 |
||||
with open( new_path, "a" ) as fnew: |
||||
with open( old_path, "r" ) as f: |
||||
while True: |
||||
line = f.readline() |
||||
if not line : |
||||
break |
||||
if count != 0: |
||||
fnew.write(line) |
||||
count+=1 |
||||
|
||||
def gather_awrams(self, ): |
||||
''' |
||||
一个文件data.csv包含 Esky .....Rs 五组数据 |
||||
获得csv文件,转移不同的行到不同文件 |
||||
第一列要转为时间 |
||||
''' |
||||
log.info(f" ",__name__,'gather_awrams') |
||||
fs = None |
||||
self.filelist = [] |
||||
fs = self.dir.glob( "*/*/*/*.csv" ) |
||||
for f in fs: |
||||
# print(f) |
||||
with open(f, 'r') as fhandle: |
||||
while True: |
||||
line = fhandle.readline() |
||||
if not line: |
||||
break |
||||
self.addLine2File(f.stem, line) |
||||
pass |
||||
|
||||
def addLine2File( self, fname, line:str ): |
||||
log.info(f"+++++ {fname} -- {line}",__name__,'addLine2File') |
||||
tm = fname[0:4] +"-"+ fname[5:7] +"-"+ fname[8:10] +" "+fname[11:13] +":"+fname[14:16] +":"+fname[17:19] |
||||
func = "Lw" |
||||
if line.startswith(func+";"): |
||||
log.info(f"===== Lw") |
||||
tmp_str = tm +line[len(func):] |
||||
self.save_str_by_func(tmp_str,func) |
||||
func = "Rs" |
||||
if line.startswith(func+";"): |
||||
log.info(f"===== Rs") |
||||
tmp_str = tm +line[len(func):] |
||||
self.save_str_by_func(tmp_str,func) |
||||
pass |
||||
|
||||
def save_str_by_func(self, str, func): |
||||
log.info(f" {func} -- {str}",__name__,'save_str_by_func') |
||||
savepath = OUTPUT_DIR |
||||
save_fname= savepath.joinpath(func + self.extname) |
||||
if not save_fname.exists(): |
||||
save_fname.touch() |
||||
with open(save_fname,"a") as fhandle: |
||||
fhandle.write(str) |
||||
|
||||
|
||||
|
||||
|
||||
# def transfer_line_without_firstline(self, oldpath:Path, newPath:Path): |
||||
# count = 0 |
||||
# with open( newPath, "a" ) as fnew: |
||||
# with open( oldpath, "r" ) as f: |
||||
# line = f.readline() |
||||
# if count != 0: |
||||
# fnew.write(line) |
||||
# pass |
||||
# pass |
||||
|
||||
def getFileList_awrams(self, ): |
||||
''' |
||||
一个文件包含 Esky .....Rs 五组数据 |
||||
获得csv文件,转移不同的行到不同文件 |
||||
''' |
||||
# ret = [] |
||||
fs = None |
||||
self.filelist = [] |
||||
fs = self.dir.glob( "*/*.csv" ) |
||||
|
||||
pass |
||||
|
||||
if __name__ == "__main__": |
||||
gd = GatherData() |
||||
gd.gather_awrams() |
||||
|
Loading…
Reference in new issue