You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
158 lines
4.3 KiB
158 lines
4.3 KiB
1 month ago
|
from time import time
|
||
|
import os
|
||
|
from common.Def import *
|
||
|
|
||
|
import numpy as np
|
||
|
from pandas import DataFrame;
|
||
|
import pandas as pd
|
||
|
|
||
|
|
||
|
Csv_Out_Pach = "./csv/"
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
#打开csv
|
||
|
def OpenCsv(logtype, typename, date):
|
||
|
path = CsvPath[logtype.name] if logtype.name in CsvPath.keys() else None
|
||
|
if path is None:
|
||
|
print(f"OpenCsv logtype error {logtype}")
|
||
|
return None, None
|
||
|
|
||
|
path = f"{path}/{date}"
|
||
|
if not os.path.exists(path):
|
||
|
os.makedirs(path)
|
||
|
filepath = f"{path}/{typename}_{date}.csv"
|
||
|
isNew = False if os.path.exists(filepath) else True
|
||
|
file = open(filepath, "a", encoding="UTF-8")
|
||
|
return file, isNew
|
||
|
|
||
|
def GetValue(log, key):
|
||
|
if key in log.keys():
|
||
|
return str(log[key])
|
||
|
return " "
|
||
|
|
||
|
|
||
|
def WriteBillToCsv(inttype, logs, date):
|
||
|
print(f"WriteBillToCsv inttype:{inttype} date: {date}\n")
|
||
|
try:
|
||
|
type = BillType(inttype)
|
||
|
except :
|
||
|
print(f"WriteBillToCsv no BillType {inttype}")
|
||
|
return
|
||
|
|
||
|
head = BillHead[type.name] if type.name in BillHead.keys() else None
|
||
|
if head is None:
|
||
|
print("WriteBillToCsv not head type " + str(inttype))
|
||
|
return
|
||
|
|
||
|
#打开文件
|
||
|
file, isNew = OpenCsv(LogType.Bill, type.name, date)
|
||
|
if isNew: #新建要写入头
|
||
|
file.write(','.join(BillComHead + head))
|
||
|
file.write(",otherData")
|
||
|
file.write("\n")
|
||
|
|
||
|
for log in logs:
|
||
|
one = []
|
||
|
#写入通用头
|
||
|
for key in BillComHead:
|
||
|
one.append(GetValue(log, key))
|
||
|
for key in head:
|
||
|
one.append(GetValue(log, key))
|
||
|
|
||
|
#其他数据
|
||
|
otherKyes = list(set(log.keys()).difference(set(BillComHead + head)))
|
||
|
otherdata = []
|
||
|
for key in otherKyes:
|
||
|
otherdata.append(f"{key}={GetValue(log, key)}")
|
||
|
|
||
|
file.write(','.join(one))
|
||
|
if len(otherdata) > 0:
|
||
|
file.write(",")
|
||
|
file.write(';'.join(otherdata))
|
||
|
|
||
|
file.write('\n')
|
||
|
file.close()
|
||
|
|
||
|
def WriteBdcToCsv(inttype, logs, date):
|
||
|
print(f"WriteBdcToCsv inttype:{inttype} date: {date}\n")
|
||
|
|
||
|
try:
|
||
|
type = BdcType(inttype)
|
||
|
except :
|
||
|
print(f"WriteBdcToCsv no BdcType {inttype}")
|
||
|
return
|
||
|
|
||
|
|
||
|
head = BdcHead[type.name] if type.name in BdcHead.keys() else None
|
||
|
if head is None:
|
||
|
print("WriteBdcToCsv not head type " + str(inttype))
|
||
|
return
|
||
|
|
||
|
#打开文件
|
||
|
file, isNew = OpenCsv(LogType.Bdc, type.name, date)
|
||
|
if isNew: #新建要写入头
|
||
|
file.write(','.join(BdcComHead + head))
|
||
|
file.write(",otherData")
|
||
|
file.write("\n")
|
||
|
|
||
|
for log in logs:
|
||
|
one = []
|
||
|
#写入通用头
|
||
|
for key in BdcComHead:
|
||
|
one.append(GetValue(log, key))
|
||
|
for key in head:
|
||
|
one.append(GetValue(log, key))
|
||
|
|
||
|
#其他数据
|
||
|
otherKyes = list(set(log.keys()).difference(set(BdcComHead + head)))
|
||
|
otherdata = []
|
||
|
for key in otherKyes:
|
||
|
otherdata.append(f"{key}={GetValue(log, key)}")
|
||
|
|
||
|
file.write(','.join(one))
|
||
|
if len(otherdata) > 0:
|
||
|
file.write(",")
|
||
|
file.write(';'.join(otherdata))
|
||
|
|
||
|
file.write('\n')
|
||
|
file.close()
|
||
|
|
||
|
|
||
|
def WriteBdcCliToCsv(inttype, logs, date):
|
||
|
print(f"WriteBdcCliToCsv inttype:{inttype} date: {date}\n")
|
||
|
type = BdcCliType(inttype)
|
||
|
head = BdcCliHead[type.name] if type.name in BdcCliHead.keys() else None
|
||
|
if head is None:
|
||
|
print("WriteBdcCliToCsv not head type " + str(inttype))
|
||
|
return
|
||
|
|
||
|
#打开文件
|
||
|
file, isNew = OpenCsv(LogType.BdcCli, type.name, date)
|
||
|
if isNew: #新建要写入头
|
||
|
file.write(','.join(BdcComHead + head))
|
||
|
file.write(",otherData")
|
||
|
file.write("\n")
|
||
|
|
||
|
for log in logs:
|
||
|
one = []
|
||
|
#写入通用头
|
||
|
for key in BdcComHead:
|
||
|
one.append(GetValue(log, key))
|
||
|
for key in head:
|
||
|
one.append(GetValue(log, key))
|
||
|
|
||
|
#其他数据
|
||
|
otherKyes = list(set(log.keys()).difference(set(BdcComHead + head)))
|
||
|
otherdata = []
|
||
|
for key in otherKyes:
|
||
|
otherdata.append(f"{key}={GetValue(log, key)}")
|
||
|
|
||
|
file.write(','.join(one))
|
||
|
if len(otherdata) > 0:
|
||
|
file.write(",")
|
||
|
file.write(';'.join(otherdata))
|
||
|
|
||
|
file.write('\n')
|
||
|
file.close()
|