新增一键运行功能
This commit is contained in:
+13
-16
@@ -1,7 +1,10 @@
|
||||
import tushare as ts
|
||||
from sqlalchemy import create_engine, text
|
||||
from sqlalchemy import text
|
||||
from datetime import datetime
|
||||
import sys
|
||||
import argparse
|
||||
|
||||
from stock_config import TUSHARE_TOKEN, get_engine as create_db_engine
|
||||
|
||||
# =======================
|
||||
# 1. 日期校验(YYYYMMDD)
|
||||
@@ -36,14 +39,7 @@ def validate_dates(start_str, end_str):
|
||||
# 2. 创建数据库连接(解决 % 编码问题)
|
||||
# =======================
|
||||
def get_engine():
|
||||
engine = create_engine(
|
||||
"mysql+pymysql://yangfan@8.159.129.156:10836/level?charset=utf8mb4",
|
||||
connect_args={
|
||||
"password": "aA%8023321088"
|
||||
},
|
||||
pool_pre_ping=True
|
||||
)
|
||||
return engine
|
||||
return create_db_engine()
|
||||
|
||||
|
||||
# =======================
|
||||
@@ -92,11 +88,11 @@ def run(start_date, end_date, token):
|
||||
)
|
||||
except Exception as e:
|
||||
print(f"❌ 获取数据失败: {e}")
|
||||
return
|
||||
return False
|
||||
|
||||
if df is None or df.empty:
|
||||
print("⚠️ 无数据")
|
||||
return
|
||||
return False
|
||||
|
||||
records = []
|
||||
for _, row in df.iterrows():
|
||||
@@ -126,15 +122,16 @@ def run(start_date, end_date, token):
|
||||
conn.execute(sql, records)
|
||||
|
||||
print(f"✅ 写入完成,共 {len(records)} 条")
|
||||
return True
|
||||
|
||||
|
||||
# =======================
|
||||
# 5. 程序入口(只改这里)
|
||||
# =======================
|
||||
if __name__ == "__main__":
|
||||
START_DATE = "20240424"
|
||||
END_DATE = "20260424"
|
||||
parser = argparse.ArgumentParser(description="同步交易日历")
|
||||
parser.add_argument("--start-date", default="20260429", help="开始日期,格式 YYYYMMDD")
|
||||
parser.add_argument("--end-date", default="20260429", help="结束日期,格式 YYYYMMDD")
|
||||
args = parser.parse_args()
|
||||
|
||||
TUSHARE_TOKEN = "0fad3cf498757089e2630028455d5bbe1637475788bcdaa1f2175e93"
|
||||
|
||||
run(START_DATE, END_DATE, TUSHARE_TOKEN)
|
||||
run(args.start_date, args.end_date, TUSHARE_TOKEN)
|
||||
|
||||
Reference in New Issue
Block a user