feat: udpate sheetname sort

main
jackluson 2 years ago
parent 1727cafae0
commit 386c5cfb33

@ -17,7 +17,7 @@ from src.acquire_fund_snapshot import get_fund_list
from src.acquire_fund_base import acquire_fund_base from src.acquire_fund_base import acquire_fund_base
from src.fund_info.supplement import FundSupplement from src.fund_info.supplement import FundSupplement
from src.acquire_fund_quarter import acquire_fund_quarter from src.acquire_fund_quarter import acquire_fund_quarter
from src.fund_statistic import get_special_fund_code_holder_stock_detail, all_stocks_rank,t100_stocks_rank,all_stock_holder_detail,calculate_quarter_fund_count from src.fund_statistic import get_special_fund_code_holder_stock_detail, all_stocks_rank,t100_stocks_rank,all_stock_holder_detail,calculate_quarter_fund_total
from src.fund_strategy import output_high_score_funds from src.fund_strategy import output_high_score_funds
def main(): def main():
@ -53,7 +53,7 @@ def main():
elif input_value == '8': elif input_value == '8':
all_stock_holder_detail() all_stock_holder_detail()
elif input_value == '9': elif input_value == '9':
calculate_quarter_fund_count() calculate_quarter_fund_total()
elif input_value == '10': elif input_value == '10':
output_high_score_funds() output_high_score_funds()
else: else:

@ -7,14 +7,15 @@ Author: luxuemin2108@gmail.com
----- -----
Copyright (c) 2021 Camel Lu Copyright (c) 2021 Camel Lu
''' '''
from sql_model.stock_query import StockQuery
from sql_model.fund_query import FundQuery
from utils.index import get_quarter_index, fisrt_match_condition_from_list
import time import time
import re import re
import os import os
import sys import sys
from pprint import pprint from pprint import pprint
from sql_model.stock_query import StockQuery
from sql_model.fund_query import FundQuery
from utils.index import get_quarter_index, fisrt_match_condition_from_list
sys.path.append('../') sys.path.append('../')
sys.path.append(os.getcwd() + '/src') sys.path.append(os.getcwd() + '/src')

@ -16,7 +16,7 @@ from pprint import pprint
import pandas as pd import pandas as pd
import numpy as np import numpy as np
from fund_info.statistic import FundStatistic from fund_info.statistic import FundStatistic
from utils.index import get_last_quarter_str, get_stock_market, find_from_list_of_dict, update_xlsx_file, update_xlsx_file_with_sorted from utils.index import get_last_quarter_str, get_stock_market, find_from_list_of_dict, update_xlsx_file, update_xlsx_file_with_sorted, update_xlsx_file_with_insert
from utils.file_op import read_dir_all_file from utils.file_op import read_dir_all_file
@ -150,8 +150,8 @@ def t100_stocks_rank(each_statistic=None, *, quarter_index=None):
if quarter_index == None: if quarter_index == None:
quarter_index = get_last_quarter_str(1) quarter_index = get_last_quarter_str(1)
last_quarter_index = get_last_quarter_str(2) last_quarter_index = get_last_quarter_str(2)
output_file = './outcome/数据整理/strategy/top100_rank.xlsx' output_file = './outcome/数据整理/strategy/基金重仓股Top100.xlsx'
sheet_name = quarter_index + '基金重仓股T100' sheet_name = quarter_index
columns = ['代码', '名称', quarter_index + '持有数量(只)', last_quarter_index + '持有数量(只)', '持有数量环比', '持有数量环比百分比', columns = ['代码', '名称', quarter_index + '持有数量(只)', last_quarter_index + '持有数量(只)', '持有数量环比', '持有数量环比百分比',
'持有数量升或降', quarter_index + '持有市值(亿元)', last_quarter_index + '持有市值(亿元)', '持有市值环比', '持有市值环比百分比', '持有市值升或降'] '持有数量升或降', quarter_index + '持有市值(亿元)', last_quarter_index + '持有市值(亿元)', '持有市值环比', '持有市值环比百分比', '持有市值升或降']
@ -161,7 +161,7 @@ def t100_stocks_rank(each_statistic=None, *, quarter_index=None):
stock_top_list = stock_top_list[:100] # 获取top100权重股 stock_top_list = stock_top_list[:100] # 获取top100权重股
filter_list = stocks_compare(stock_top_list) filter_list = stocks_compare(stock_top_list)
df_filter_list = pd.DataFrame(filter_list, columns=columns) df_filter_list = pd.DataFrame(filter_list, columns=columns)
update_xlsx_file(output_file, df_filter_list, sheet_name) update_xlsx_file_with_insert(output_file, df_filter_list, sheet_name)
# df_filter_list.to_excel(output_file, sheet_name=sheet_name) # df_filter_list.to_excel(output_file, sheet_name=sheet_name)
@ -414,7 +414,7 @@ def compare(item1, item2):
# Calling # Calling
# list.sort(key=compare) # list.sort(key=compare)
def calculate_quarter_fund_count(): def calculate_quarter_fund_total():
stock_markets = ['A股/上证主板', 'A股/创业板', 'A股/科创板', 'A股/深证主板', 'A股/北交所', '港股', '其他'] stock_markets = ['A股/上证主板', 'A股/创业板', 'A股/科创板', 'A股/深证主板', 'A股/北交所', '港股', '其他']
for market in stock_markets: for market in stock_markets:
dir_path = './outcome/数据整理/stocks/' + market + '/' dir_path = './outcome/数据整理/stocks/' + market + '/'
@ -459,5 +459,5 @@ if __name__ == '__main__':
# 获取某些基金的十大持仓股票信息 # 获取某些基金的十大持仓股票信息
# get_special_fund_code_holder_stock_detail() # get_special_fund_code_holder_stock_detail()
calculate_quarter_fund_count() calculate_quarter_fund_total()
# select_condition_stocks_rank() # select_condition_stocks_rank()

@ -8,7 +8,7 @@ Author: luxuemin2108@gmail.com
Copyright (c) 2021 Camel Lu Copyright (c) 2021 Camel Lu
''' '''
from utils.index import get_last_quarter_str, update_xlsx_file from utils.index import get_last_quarter_str, update_xlsx_file_with_insert
from sql_model.fund_query import FundQuery from sql_model.fund_query import FundQuery
from pprint import pprint from pprint import pprint
import pandas as pd import pandas as pd
@ -34,7 +34,7 @@ def output_high_score_funds(each_query=None, quarter_index=None):
# pprint(df_high_score_funds) # pprint(df_high_score_funds)
path = './outcome/数据整理/funds/high-score-funds.xlsx' path = './outcome/数据整理/funds/high-score-funds.xlsx'
update_xlsx_file(path, df_high_score_funds, quarter_index) update_xlsx_file_with_insert(path, df_high_score_funds, quarter_index)
if __name__ == '__main__': if __name__ == '__main__':

@ -249,6 +249,29 @@ def update_xlsx_file_with_sorted(path, df_data, sheet_name, sorted_sheetnames =
print("path", path) print("path", path)
raise BaseException('更新excel失败') raise BaseException('更新excel失败')
def update_xlsx_file_with_insert(path, df_data, sheet_name, index = 0):
try:
if os.path.exists(path):
writer = pd.ExcelWriter(path, engine='openpyxl')
workbook = load_workbook(path)
writer.book = workbook
df_data.to_excel(
writer, sheet_name=sheet_name)
workbook = writer.book
writer.sheets = {ws.title:ws for ws in workbook.worksheets}
del workbook[sheet_name]
# workbook.remove(sheet_name)
workbook._add_sheet(writer.sheets.get(sheet_name), index)
writer.book = workbook
writer.save()
writer.close()
else:
df_data.to_excel(
path, sheet_name=sheet_name)
except BaseException:
print("path", path)
raise BaseException('更新excel失败')
def bootstrap_thread(target_fn, total, thread_count=2): def bootstrap_thread(target_fn, total, thread_count=2):
threaders = [] threaders = []

Loading…
Cancel
Save