fix merging

This commit is contained in:
2024-06-16 14:49:46 +08:00
3 changed files with 53 additions and 32 deletions

View File

@ -1,4 +1,5 @@
import os
import random
from pandas import read_csv
from csv import reader
@ -6,7 +7,7 @@ from sys import argv
from os.path import exists
from os import scandir, remove
from openpyxl import Workbook
from random import randint
def traversal_files(path, w2t):
# 功能:以列表的形式分别返回指定路径下的文件和文件夹,不包含子目录
@ -33,14 +34,18 @@ def find_point(bof, step, pos, data_file, flag, df, row, w2t):
# flag: greater than or lower than
if flag == 'gt':
while 0 < row < df.index[-1]-100:
if df.iloc[row, 2] > 2:
_value = df.iloc[row, 2]
if _value > 2:
if bof == 'backward':
row -= step
elif bof == 'forward':
row += step
continue
else:
row_target = row
if bof == 'backward':
row_target = row - step
elif bof == 'forward':
row_target = row + step
break
else:
if bof == 'backward':
@ -49,14 +54,18 @@ def find_point(bof, step, pos, data_file, flag, df, row, w2t):
row_target = row + 100
elif flag == 'lt':
while 0 < row < df.index[-1]-100:
if df.iloc[row, 2] < 2:
_value = df.iloc[row, 2]
if _value < 2:
if bof == 'backward':
row -= step
elif bof == 'forward':
row += step
continue
else:
row_target = row
if bof == 'backward':
row_target = row - step
elif bof == 'forward':
row_target = row + step
break
else:
if bof == 'backward':
@ -117,13 +126,15 @@ def single_file_proc(ws, data_file, df, low, high, cycle, w2t):
_step = 5
_data = {}
row_max = df.index[-1]-100
print(data_file)
while _row < row_max:
if count not in _data.keys():
_data[count] = []
if df.iloc[_row, 2] < 2:
_value = df.iloc[_row, 2]
if _value < 2:
_row_lt = find_point('forward', _step, 'c'+str(_row), data_file, 'lt', df, _row, w2t)
_start = int((_row_lt - _row_gt - 50) / 2)
_start = int(_row_gt + (_row_lt - _row_gt - 50) / 2)
_end = _start + 50
value = df.iloc[_start:_end, 2].mean() + df.iloc[_start:_end, 2].std()
_data[count].append(value)
@ -138,6 +149,7 @@ def single_file_proc(ws, data_file, df, low, high, cycle, w2t):
ws.cell(row=1, column=i).value = f"{i-1}次测试"
ws.cell(row=i, column=1).value = f"{i-1}次精度变化"
print(_data)
for i in sorted(_data.keys()):
_row = 2
_column = i + 1
@ -150,6 +162,9 @@ def execution(data_files, w2t):
wb = Workbook()
for data_file in data_files:
ws, df, low, high, cycle = preparation(data_file, wb, w2t)
print(f"low = {low}")
print(f"high = {high}")
print(f"cycle = {cycle}")
single_file_proc(ws, data_file, df, low, high, cycle, w2t)
wd = data_files[0].split('\\')