#!/usr/bin/python
# -*- coding: UTF-8 -*-
import mysql.connector
import pandas as pd
import numpy as np
import time
import datetime
from sqlalchemy import create_engine
from apscheduler.schedulers.blocking import BlockingScheduler
def deviceInfoToExcel():
#定義變量
sql = " "
excelFile = 'F:\\tools\\python\\Excel_'+time.strftime('%Y%m%d',time.localtime())+'.xlsx'
print("開始連接數據庫")
proConn = mysql.connector.connect(
host="", # 數據庫主機地址
user="", # 數據庫用戶名
passwd="", # 數據庫密碼
database=""
)
print("連接數據庫成功")
cursor = proConn.cursor()
cursor.execute(sql)
data = cursor.fetchall() # fetchall() 獲取所有記錄
columnDes = cursor.description #獲取連接對象的描述信息
columnNames = [columnDes[i][0] for i in range(len(columnDes))]
df = pd.DataFrame([list(i) for i in data],columns=columnNames)
writer = pd.ExcelWriter(excelFile)
df.to_excel(writer,float_format='%.5f')
writer.save()
print("導出Excel完成")
cursor.close()
proConn.close()
print('關閉數據庫連接')
def taskToExcel():
print(time.strftime('>>>>>>> now %Y-%m-%d %X',time.localtime()))
deviceInfoToExcel()
print(time.strftime('>>>>>>> now %Y-%m-%d %X',time.localtime()))
print()
if __name__ == '__main__':
# BlockingScheduler 在進程中運行單個任務 調度器是唯一運行的東西
scheduler = BlockingScheduler()
# 在 之間, 每隔60分鐘執行一次 taskToExcel 方法
scheduler .add_job(taskToExcel, 'interval', minutes=60, coalesce=True, misfire_grace_time=3600,start_date='2020-06-16 19:59:00' , end_date='2020-12-31 23:59:59')
scheduler.start()