前言
业务需要从数据库导出数据为excel,并设置成自动化。这里用pandas写的数据导入导出,还算方便。配合crontab + shell脚本使用,每天晚上自动生成excel,然后cp
到指定目录。shell脚本比较简单就不展示了,下面是python代码。
PS:如果服务器网络隔离不方便安装依赖,可以用pyinstaller
打包成可执行文件。
安装依赖
pip install pandas sqlalchemy pymysql openpyxl -i https://mirrors.aliyun.com/pypi/simple
code
import pandas as pd from sqlalchemy import create_engine # 创建连接器 engine = create_engine("mysql+pymysql://username:password@ip:port/db_name") def get_yesterday(): """获取昨天的日期""" today=datetime.date.today() oneday=datetime.timedelta(days=1) yesterday=today-oneday return yesterday start_time = get_yesterday().isoformat() + " " + "08:00:00" end_time = get_yesterday().isoformat() + " " + "21:00:00" # SQL语句 # 指定日期时间 sql1 = """ select * from cdr_2019_copy1 where start_time>="2019-07-02 08:55:00" and end_time < "2019-07-02 09:00:00"; """ # 动态语句 sql2 = 'select * from cdr where start_time >= "' + start_time + '" and end_time < "' + end_time + '" ;' # 读取数据库数据为dataframe df1 = pd.read_sql(sql,engine) print(df1) # 导出为excel文件 filename = get_yesterday().strftime("%Y%m%d") + ".xlsx" df2.to_excel(filename, index=False)
打包
pyinstaller -F -p C:\software\python\Lib\site-packages hello.py
如果用到了pymysql库,最好指定site-packages的目录位置。