Commit a76c5d54 authored by 张鹏程's avatar 张鹏程

项目交接

1. 删除 jupyter 中不需要的代码
parent cd24d641
......@@ -24,7 +24,7 @@ class AutomaticHandler(BaseHandler):
self.auto_dataset = {"data_basic":{"model_name":self.model_name,"count":self.user_count},
"data_detail":[]}
try :
url = 'http://172.21.10.25:9012/manage/features'
url = 'http://rc-model-exec.quantgroups.com/manage/features'
r = requests.post(url,data={'codes':self.model_name})
if r.status_code == 200:
response = r.json()
......
{
"cells": [],
"metadata": {},
"nbformat": 4,
"nbformat_minor": 2
}
This diff is collapsed.
import random
def test():
num = 9
prob_a = 0.6
prob_b = 0.3
prob_c = 0.1
As = int(num*prob_a) * 'A'
Bs = int(num*prob_b) * 'B'
Cs = int(num*prob_c) * 'C'
print('--',As,Bs,Cs)
# create a list with 60 As, 30 Bs, and 10 Cs
chars = list(As + Bs + Cs)
random.shuffle(chars)
print(chars,len(chars))
# _list = []
def lst_Covering(lst,num,istrue=True):
index = 0
while num>0:
if istrue:
lst[index] +=1
else:
print(num,index,lst[index])
lst[index] -=1
index+=1
num= num-1
if index >= len(lst):
index = 0
return lst
def test(b,count,res):
print(b,count)
res = []
if len(b)-1>count:
for i in b:
if count>=i:
res.append(round(i/count))
else:
res.append(1)
_sum = sum(res)
# print(res,_sum,count)
if _sum > count:
_temp = _sum - count
# print(_temp)
res = sorted(res,reverse = True)
res = lst_Covering(res,_temp,False)
elif _sum < count:
_temp = count - _sum
res = sorted(res)
res = lst_Covering(res,_temp)
return res
def test2(a,b):
lst = []
for i,v in enumerate(b):
temp = [a[i]] * int(v)
lst.extend(temp)
random.shuffle(lst)
return lst
a = [1,2,3,4]
b = [70,10,17,3]
count = 4
b = sorted(b,reverse=True)
res = []
res = test(b,count,res)
print(res)
if res:
print(test2(a,res),len(test2(a,res)) - count)
import random
def lst_Covering(lst,num,istrue=True):
index = 0
while num>0:
if istrue:
lst[index] +=1
else:
print(num,index,lst[index])
lst[index] -=1
index+=1
num= num-1
if index >= len(lst):
index = 0
return lst
def set_allocation_num(gdp,count):
"""分配"""
res = []
for i in gdp:
res.append(round(count*i/100))
_sum = sum(res)
if _sum > count:
_temp = _sum - count
res = sorted(res,reverse = True)
res = lst_Covering(res,_temp,False)
elif _sum < count:
_temp = count - _sum
res = sorted(res)
res = lst_Covering(res,_temp)
return res
def get_array(name,gdp):
lst = []
for i,v in enumerate(gdp):
temp = [name[i]] * int(v)
lst.extend(temp)
random.shuffle(lst)
return lst
feature_name = [1,2,3,4]
feature_gdp = [70,10,17,3]
model_count = 10
feature_gdp = sorted(feature_gdp,reverse=True)
gdp_num = set_allocation_num(feature_gdp,model_count)
# print(len(test2(feature_name,res)) - model_count)
print(get_array(feature_name,gdp_num))
\ No newline at end of file
def aaa(n):
def aa(n):
for i in range(n):
yield i*i
return aa(n)
# for i in aaa(5):
# print(i)
def getSeq(num):
index = 1;
while index<num:
index = index+1
getSeq(10)
# for i in getSeq(10):
# print(i)
\ No newline at end of file
import logging
from logging.handlers import RotatingFileHandler # 按文件大小滚动备份
import colorlog # 控制台日志输入颜色
import time
import datetime
import os
cur_path = os.path.dirname(os.path.realpath(__file__)) # log_path是存放日志的路径
log_path = os.path.join(os.path.dirname(cur_path), 'logs')
if not os.path.exists(log_path): os.mkdir(log_path) # 如果不存在这个logs文件夹,就自动创建一个
logName = os.path.join(log_path, '%s.log' % time.strftime('%Y-%m-%d')) # 文件的命名
print(cur_path)
print(log_path)
print(logName)
log_colors_config = {
'DEBUG': 'cyan',
'INFO': 'green',
'WARNING': 'yellow',
'ERROR': 'red',
'CRITICAL': 'red',
}
class Log:
def __init__(self, logName=logName):
self.logName = logName
self.logger = logging.getLogger()
self.logger.setLevel(logging.DEBUG)
self.formatter = colorlog.ColoredFormatter(
'%(log_color)s[%(asctime)s] [%(filename)s:%(lineno)d] [%(module)s:%(funcName)s] [%(levelname)s]- %(message)s',
log_colors=log_colors_config) # 日志输出格式
self.handle_logs()
def get_file_sorted(self, file_path):
"""最后修改时间顺序升序排列 os.path.getmtime()->获取文件最后修改时间"""
dir_list = os.listdir(file_path)
if not dir_list:
return
else:
dir_list = sorted(dir_list, key=lambda x: os.path.getmtime(os.path.join(file_path, x)))
return dir_list
def TimeStampToTime(self, timestamp):
"""格式化时间"""
timeStruct = time.localtime(timestamp)
return str(time.strftime('%Y-%m-%d', timeStruct))
def handle_logs(self):
"""处理日志过期天数和文件数量"""
dir_list = ['logs'] # 要删除文件的目录名
for dir in dir_list:
print(os.path.abspath(os.path.dirname(os.path.dirname(__file__))) + '/' + dir )
dirPath = os.path.abspath(os.path.dirname(os.path.dirname(__file__))) + '/' + dir # 拼接删除目录完整路径
file_list = self.get_file_sorted(dirPath) # 返回按修改时间排序的文件list
if file_list: # 目录下没有日志文件
for i in file_list:
file_path = os.path.join(dirPath, i) # 拼接文件的完整路径
t_list = self.TimeStampToTime(os.path.getctime(file_path)).split('-')
now_list = self.TimeStampToTime(time.time()).split('-')
t = datetime.datetime(int(t_list[0]), int(t_list[1]),
int(t_list[2])) # 将时间转换成datetime.datetime 类型
now = datetime.datetime(int(now_list[0]), int(now_list[1]), int(now_list[2]))
if (now - t).days > 6: # 创建时间大于6天的文件删除
self.delete_logs(file_path)
print(file_path,t_list,now_list,now,t,(now - t).days)
if len(file_list) > 4: # 限制目录下记录文件数量
file_list = file_list[0:-4]
for i in file_list:
file_path = os.path.join(dirPath, i)
print(file_path)
self.delete_logs(file_path)
def delete_logs(self, file_path):
try:
os.remove(file_path)
except PermissionError as e:
Log().warning('删除日志文件失败:{}'.format(e))
def __console(self, level, message):
# 创建一个FileHandler,用于写到本地
fh = RotatingFileHandler(filename=self.logName, mode='a', maxBytes=1024 * 1024 * 5, backupCount=5,
encoding='utf-8') # 使用RotatingFileHandler类,滚动备份日志
fh.setLevel(logging.DEBUG)
fh.setFormatter(self.formatter)
self.logger.addHandler(fh)
# 创建一个StreamHandler,用于输出到控制台
ch = colorlog.StreamHandler()
ch.setLevel(logging.DEBUG)
ch.setFormatter(self.formatter)
self.logger.addHandler(ch)
if level == 'info':
self.logger.info(message)
elif level == 'debug':
self.logger.debug(message)
elif level == 'warning':
self.logger.warning(message)
elif level == 'error':
self.logger.error(message)
# 这两行代码是为了避免日志输出重复问题
self.logger.removeHandler(ch)
self.logger.removeHandler(fh)
fh.close() # 关闭打开的文件
def debug(self, message):
self.__console('debug', message)
def info(self, message):
self.__console('info', message)
def warning(self, message):
self.__console('warning', message)
def error(self, message):
self.__console('error', message)
if __name__ == "__main__":
log = Log()
log.debug("---测试开始----")
log.info("操作步骤")
log.warning("----测试结束----")
log.error("----测试错误----")
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment