| | |
| | | import json |
| | | import os |
| | | |
| | | import tool |
| | | from utils import tool |
| | | from utils import log_util |
| | | |
| | | |
| | | class CodeDataManager: |
| | | def save_data(self, data): |
| | | code = data["code"] |
| | | create_at = data["created_at"] |
| | | day = create_at.strftime("%Y%m%d") |
| | | data["created_at"] = create_at.strftime("%Y-%m-%d %H:%M:%S") |
| | | file_path = "datas/{}_{}.txt".format(day, code) |
| | | if not os.path.exists(file_path): |
| | | with open(file_path, 'w', encoding="utf-8") as f: |
| | | pass |
| | | with open(file_path, "a", encoding="utf-8") as f: |
| | | f.write(json.dumps(data)) |
| | | f.write("\n") |
| | | log_util.save_l1_data(code, data) |
| | | |
| | | def get_datas(self, code): |
| | | day = datetime.datetime.now().strftime("%Y%m%d") |
| | | file_path = "datas/{}_{}.txt".format(day, code) |
| | | datas = [] |
| | | try: |
| | | with open(file_path, "r") as f: |
| | | while True: |
| | | line = f.readline() |
| | | if not line or len(line) == 0: |
| | | break |
| | | data = json.loads(line) |
| | | datas.append(data) |
| | | except: |
| | | pass |
| | | datas = log_util.get_l1_datas(code) |
| | | # 根据创建时间排序 |
| | | datas = sorted(datas, key=lambda tup: int(tup["created_at"].split(" ")[1].replace(":", ""))) |
| | | return datas |
| | |
| | | if tool.trade_time_sub(time_, last_time) > 30: |
| | | if len(ranges) == 0 or ranges[-1][0] != last_time: |
| | | if is_trade_time(last_time) and is_trade_time(time_): |
| | | ranges.append((tool.trade_time_add_second(last_time, 3), tool.trade_time_add_second(time_, -3))) |
| | | start_time = tool.trade_time_add_second(last_time, 3) |
| | | end_time = tool.trade_time_add_second(time_, -3) |
| | | if tool.trade_time_sub(end_time, start_time) > 0: |
| | | ranges.append((start_time, end_time)) |
| | | last_time = time_ |
| | | return ranges |