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

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()