From 8bfdc52b40b4456a5a29e4502cce5865be8ef439 Mon Sep 17 00:00:00 2001 From: admin <admin@example.com> Date: 星期五, 05 九月 2025 18:17:15 +0800 Subject: [PATCH] bug修复 --- log_module/log_export.py | 260 +++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 246 insertions(+), 14 deletions(-) diff --git a/log_module/log_export.py b/log_module/log_export.py index b916c31..62b85f2 100644 --- a/log_module/log_export.py +++ b/log_module/log_export.py @@ -1,5 +1,6 @@ import datetime import hashlib +import json import logging import os import time @@ -32,7 +33,9 @@ def __get_async_log_time(line): line = line.split(" - ")[1] time_str = line[line.find("[") + 1:line.find("[") + 9] - return time_str + if time_str.replace(":", "").replace(".", "").isdigit(): + return time_str + return None __log_file_contents = {} @@ -53,7 +56,8 @@ return contents -def load_market_stock_heat(date=tool.get_now_date_str()): +# 鍔犺浇鏉垮潡寮哄害鏃ュ織 +def load_market_sift_plate(date=tool.get_now_date_str()): """ 鑾峰彇绮鹃�夋祦鍏ョ殑鎴愬垎鑲� :param date: @@ -66,11 +70,9 @@ lines = f.readlines() for line in lines: if line: - time_str = __get_async_log_time(line) + time_str = __get_log_time(line) try: data = line.split(" - ")[1].strip() - if data.startswith("["): - data = data[data.find("]") + 1:].strip() data_dict = eval(data) fdatas.append((time_str, data_dict)) except: @@ -78,7 +80,8 @@ return fdatas -def load_stock_of_markets_plate(date=tool.get_now_date_str()): +# 鍔犺浇涓偂寮哄害鏃ュ織 +def load_kpl_market_stock_heat(date=tool.get_now_date_str()): """ 鑾峰彇绮鹃�夋祦鍏ョ殑鎴愬垎鑲� :param date: @@ -127,12 +130,241 @@ return fdatas -if __name__ == '__main__': - datas = load_kpl_market_strong() +def load_target_codes_info(date=tool.get_now_date_str()): + """ + 鑾峰彇寮�鐩樺暒鍘嗗彶寮哄害 + :param date: + :return: [("鏃堕棿","鍒嗘暟")] + """ + path = f"{constant.get_path_prefix()}/low_suction_log/gp/codes/target_codes.{date}.log" + if os.path.exists(path): + with open(path, 'r', encoding="utf-8") as f: + lines = f.readlines() + if lines: + line = lines[0] + if line: + try: + data = line.split(" - ")[1].strip() + if data.startswith("[") and data.find("]") < 20: + data = data[data.find("]") + 1:].strip() + return eval(data) + except: + pass + return None + + +def load_k_bars(date=tool.get_now_date_str()): + """ + 鍔犺浇K绾挎暟鎹� + :param date: + :return: + """ + path = f"{constant.get_path_prefix()}/local_storage_data/all_stocks_all_K_line_property_dict.{date}.json" + if os.path.exists(path): + with open(path, 'r', encoding="utf-8") as f: + lines = f.readlines() + return json.loads(lines[0]) + return None + + +def load_kpl_code_plates(date=tool.get_now_date_str()): + """ + 鍔犺浇浠g爜鏉垮潡鏁版嵁 + :param date: + :return: + """ + path = f"{constant.get_path_prefix()}/low_suction_log/gp/kpl/kpl_code_plates.{date}.log" + if os.path.exists(path): + with open(path, 'r', encoding="utf-8") as f: + lines = f.readlines() + if lines: + line = lines[0] + data = line.split(" - ")[1].strip() + if data.startswith("["): + data = data[data.find("]") + 1:].strip() + return eval(data) + return None + + +def load_kpl_limit_up_datas(date=tool.get_now_date_str()): + """ + 鍔犺浇寮�鐩樺暒娑ㄥ仠鏁版嵁 + :param date: + :return: + """ + path = f"{constant.get_path_prefix()}/low_suction_log/gp/kpl/kpl_limit_up.{date}.log" fdatas = [] - for data in datas: - # (璺濈09:15:00鐨勭鏁�, 鏃堕棿, 寮哄害) - if "11:30:00"<= data[0]<="13:00:00": - continue - fdatas.append([tool.trade_time_sub(data[0], "09:15:00"), data[0], data[1]]) - print(fdatas) + if os.path.exists(path): + with open(path, 'r', encoding="utf-8") as f: + lines = f.readlines() + if lines: + for line in lines: + time_str = __get_async_log_time(line) + data = line.split(" - ")[1].strip() + if data.startswith("["): + data = data[data.find("]") + 1:].strip() + fdatas.append((time_str, eval(data))) + return fdatas + + +def load_stock_of_markets_plate_simple(start_time_str, end_time_str, date=tool.get_now_date_str()): + """ + 鍔犺浇寮�鐩樺暒绮鹃�夋澘鍧楀強鍏朵唬鐮� + :param end_time_str: 缁撴潫鏃堕棿 + :param start_time_str: 寮�濮嬫椂闂� + :param date: + :return: + """ + path = f"{constant.get_path_prefix()}/low_suction_log/gp/kpl/stock_of_markets_plate_simple.{date}.log" + fdatas = [] + if os.path.exists(path): + with open(path, 'r', encoding="utf-8") as f: + while True: + line = f.readline() + if not line: + break + time_str = __get_async_log_time(line) + if time_str > end_time_str: + break + if start_time_str <= time_str <= end_time_str: + data = line.split(" - ")[1].strip() + if data.startswith("["): + data = data[data.find("]") + 1:].strip() + fdatas.append((time_str, eval(data))) + return fdatas + + +def load_deal_big_order(date=tool.get_now_date_str()): + """ + 鎴愪氦澶у崟 + :param date: + :return: + """ + path = f"{constant.get_path_prefix()}/low_suction_log/huaxin/l2/transaction.{date}.log" + fdatas = [] + if os.path.exists(path): + with open(path, 'r', encoding="utf-8") as f: + lines = f.readlines() + if lines: + for line in lines: + time_str = __get_async_log_time(line) + if time_str: + data = line.split(" - ")[1].strip() + if data.startswith("["): + data = data[data.find("]") + 1:].strip() + else: + time_str = __get_log_time(line) + data = line.split(" - ")[1].strip() + fdatas.append((time_str, eval(data))) + return fdatas + + +def load_ticks_data(min_time_str, max_time_str, date=tool.get_now_date_str()): + """ + 鎴愪氦澶у崟 + :param max_time_str: + :param date: + :return: + """ + path = f"{constant.get_path_prefix()}/low_suction_log/huaxin/l2/marketdata.{date}.log" + fdatas = [] + if os.path.exists(path): + with open(path, 'r', encoding="utf-8") as f: + while True: + line = f.readline() + if not line: + break + try: + time_str = __get_async_log_time(line) + if time_str: + data = line.split(" - ")[1].strip() + if data.startswith("["): + data = data[data.find("]") + 1:].strip() + else: + time_str = __get_log_time(line) + data = line.split(" - ")[1].strip() + if min_time_str <= time_str <= max_time_str: + fdatas.append((time_str, eval(data))) + if time_str > max_time_str: + break + except Exception as e: + logging.exception(e) + print(line) + print(fdatas[-1]) + return fdatas + + +def load_forbidden_plates_data(date=tool.get_now_date_str()): + """ + 绂佹涔板叆鐨勬澘鍧� + :param date: + :return: + """ + path = f"{constant.get_path_prefix()}/low_suction_log/gp/kpl/forbidden_plates.{date}.log" + fdatas = [] + if os.path.exists(path): + with open(path, 'r', encoding="utf-8") as f: + lines = f.readlines() + if lines: + for line in lines: + time_str = __get_async_log_time(line) + if time_str: + data = line.split(" - ")[1].strip() + if data.startswith("["): + data = data[data.find("]") + 1:].strip() + else: + time_str = __get_log_time(line) + data = line.split(" - ")[1].strip() + fdatas.append((time_str, data.split("-")[0].strip(), data.split("-")[1].strip())) + return fdatas + + +def load_virtual_trade_account(date=tool.get_now_date_str()): + """ + 鍔犺浇铏氭嫙浜ゆ槗鏁版嵁 + :param date: + :return: + """ + path = f"{constant.get_path_prefix()}/low_suction_log/gp/virtual_account/virtual_account_money_records.{date}.log" + fdatas = [] + if os.path.exists(path): + with open(path, 'r', encoding="utf-8") as f: + lines = f.readlines() + if lines: + for line in lines: + time_str = __get_async_log_time(line) + data = line[line.find("]") + 1:].strip() + fdatas.append((time_str, eval(data))) + return fdatas + + +def load_deal_list(date=tool.get_now_date_str()): + """ + 鍔犺浇铏氭嫙浜ゆ槗鏁版嵁 + :param date: + :return: + """ + path = f"{constant.get_path_prefix()}/low_suction_log/huaxin_local/trade/deal.{date}.log" + fdatas = [] + if os.path.exists(path): + with open(path, 'r', encoding="utf-8") as f: + lines = f.readlines() + if lines: + for line in lines: + # time_str = __get_async_log_time(line) + data = line[line.find("]") + 1:].strip() + fdatas.append(eval(data)) + return fdatas + + +if __name__ == '__main__': + print(load_deal_list()) + # load_k_bars('2025-07-03') + # datas = load_ticks_data("09:50:00") + # fdatas = [] + # for data in datas: + # # (璺濈09:15:00鐨勭鏁�, 鏃堕棿, 寮哄害) + # if "11:30:00" <= data[0] <= "13:00:00": + # continue + # fdatas.append([tool.trade_time_sub(data[0], "09:15:00"), data[0], data[1]]) + # print(fdatas) -- Gitblit v1.8.0