1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- import datetime
- import logging
- import os
- import pandas as pd
- import sys
- from sqlalchemy import create_engine
- # 更新为第三方数据源
- engine = create_engine('mysql+pymysql://root:admin123456@192.168.50.235:30306/appoint')
- base_dir = r'/data/logs/104'
- save_dir = base_dir + os.sep + 'minute'
- log_dir = base_dir + os.sep + 'logs' + os.sep + 'minute'
- wind_farm_code_dict = {
- '风场编号1': '山西风场',
- '风场编号2': '桂林风场'
- }
- def create_dir(save_dir, is_file=False):
- if is_file:
- save_dir = os.path.dirname(save_dir)
- os.makedirs(save_dir, exist_ok=True)
- def init_log():
- logger = logging.getLogger("104data")
- logger.setLevel(logging.INFO)
- stout_handle = logging.StreamHandler(sys.stdout)
- stout_handle.setFormatter(
- logging.Formatter("%(asctime)s: %(message)s"))
- stout_handle.setLevel(logging.INFO)
- logger.addHandler(stout_handle)
- create_dir(log_dir)
- file_name = log_dir + os.sep + datetime.datetime.now().strftime('%Y%m') + '-info.log'
- file_handler = logging.FileHandler(file_name, encoding='utf-8')
- file_handler.setFormatter(
- logging.Formatter("%(asctime)s: %(message)s"))
- file_handler.setLevel(logging.INFO)
- logger.addHandler(file_handler)
- file_name = log_dir + os.sep + datetime.datetime.now().strftime('%Y%m') + '-error.log'
- file_handler = logging.FileHandler(file_name, encoding='utf-8')
- file_handler.setFormatter(
- logging.Formatter("%(asctime)s: %(message)s"))
- file_handler.setLevel(logging.ERROR)
- logger.addHandler(file_handler)
- return logger
- logger = init_log()
- def info_print(*kwargs):
- message = " ".join([str(i) for i in kwargs])
- logger.info(message)
- def error_print(*kwargs):
- message = " ".join([str(i) for i in kwargs])
- logger.error(message)
- def get_data_and_save_file(df_sql, save_path):
- info_print(df_sql)
- df = pd.read_sql_query(df_sql, engine)
- info_print(df.shape)
- if __name__ == '__main__':
- info_print("开始执行")
- begin = datetime.datetime.now()
- yestoday = (datetime.datetime.now() - datetime.timedelta(days=1)).strftime('%Y%m%d')
- yestoday_sql = f"select * from information_schema.TABLES where TABLE_NAME = {yestoday}"
- get_data_and_save_file(yestoday_sql,
- os.path.join(save_dir, wind_farm_code_dict['风场编号1'], yestoday[0:4], yestoday[0:6],
- f'{yestoday}.csv.gz'))
- info_print("执行结束,总耗时:", datetime.datetime.now() - begin)
|