command your data
Project description
PyQueen
安装
pip install pyqueen
DataSource
读写数据库
- dbtype: 可选 mysql,mssql,oracle,clickhouse,sqlite
- get_sql/to_db/exe_sql每次都会销毁连接, 无需手动close_conn. 如需手动控制连接 添加:
ds.keep_conn()
和ds.close_conn()
- 如需切换 db_name 添加:
ds.set_db(db_name)
- 设置字符集 添加:
ds.set_charset(charset)
. 默认:utf8mb4
- 设置 chunksize 添加
ds.set_chunksize(1000)
. 默认:10000
from pyqueen import DataSource
ds = DataSource(host='', username='', password='', port='', db_name='', db_type='')
# 根据sql查询, 返回 pd.DataFrame 对象
df = ds.get_sql(sql='select * from table')
# 返回查询结果的第一个值
v = ds.get_value(sql='select count(1) from table')
# 将 pd.DataFrame对象 写入数据库
### fast_load: 默认False; 仅支持MySQL, 将 pd.DataFrame对象 写入临时csv再快速导入数据库 (如果数据包含特殊字符容易出错, 慎用)
ds.to_db(df=df_to_write, tb_name='')
# 执行sql
ds.exe_sql(sql='delete from table')
下载FTP文件
from pyqueen import DataSource
ds = DataSource(host='', username='', password='', port='', db_type='ftp')
ds.download_ftp(local_dir='保存目录', remote_dir='远程目录')
写入Excel文件
- 将 pd.DataFrame对象 写入Excel文件
- file_path 文件路径 (须以 .xlsx 结尾)
- sheet_list 待写入数据, 二维列表, 每个 pd.DataFrame对象 对应一个 sheet
- fillna='' 空值填充
- fmt=None 字段格式,可以按字段名指定
- font='微软雅黑' 字体
- font_color='black' 字体颜色
- font_size=11 字体大小
- column_width=17 单元格宽度
from pyqueen import DataSource
ds = DataSource()
sheet_list = [
[df1, 'sheet_name1'],
[df2, 'sheet_name2']
]
fmt = {
'col1': '#,##0',
'col2': '#,##0.0',
'col3': '0%',
'col4': '0.00%',
'col5': 'YYYY-MM-DD'
}
ds.to_excel(file_path='xxx.xlsx', sheet_list=sheet_list, fmt=fmt)
TimeKit
- tk.today: 当前日期或初始化指定日期
- tk.now: 当前时间或初始化指定时间
- tk.hour: 当前小时
- tk.minute: 当前分钟
- tk.second: 当前秒
- tk.nday_of_week: 1-7对应周一到周日
- tk.week_start: 本周一日期
- tk.lw_start: 上周开始日期
- tk.lw_end: 上周结束日期
- tk.lw2_start: 上上周开始日期
- tk.lw2_end: 上上周结束日期
- tk.month_start: 本月初
- tk.lm_start: 上月初
- tk.lm_end: 上月末
- tk.lm2_start: 上上月初
- tk.lm2_end: 上上月末
from pyqueen import TimeKit
# 按当前时间
tk = TimeKit()
# 指定日期, 时间
tk = TimeKit(theday=20200101, thetime=120000)
# 时间加减
# flag: 加减单位: years,months,days,hours,minutes,seconds
# value: 加减值
# thetime之前 value 写负值
# thetime之后 value 写正值
new_day = tk.time_delta('20230101', 'days', -30)
# 获取日期列表
day_list = tk.get_day_list(20200101, 20200201)
# 获取自然周列表
week_list = tk.get_week_list(20200101, 20200201)
# 获取自然月列表
month_list = tk.get_month_list(20200101, 20200901)
# 按天数拆分日期为列表
time_list = tk.date_div(20200101, 20200901, 10)
# 查询任意日期是星期几
n = tk.get_nday_of_week(20200101)
# 数值型日期转字符串
date_str = tk.int2str(20200101, sep='-')
发送信息
- 邮件
- 钉钉
- 企业微信
from pyqueen import Email
# 初始化
email = Email(username='', password='', host='', port='')
# 发送文本邮件
# subject: 邮件主题,content: 邮件内容,to_user: 收件人,cc_user: 抄送人,bcc_user: 密抄人
# type: 文本或html格式,默认文本格式
email.send_text(subject='', content='', to_user=[], cc_user=None, bcc_user=None, type='plain')
# 发送附件邮件
# subject: 邮件主题,content: 邮件内容,to_user: 收件人,cc_user: 抄送人,bcc_user: 密抄人
# type: 文本或html格式,默认文本格式,file_path_list: 附件路径列表
email.send_file(subject='', content='', file_path_list=[], to_user=[], cc_user=None, bcc_user=None, type='plain')
from pyqueen import Wechat
# 初始化
wechat = Wechat(key='')
# content不为None时,发送文本
# mentioned_list: userid的列表,提醒群中的指定成员(@某个成员),@all表示提醒所有人
# mentioned_mobile_list: 手机号列表,提醒手机号对应的群成员(@某个成员),@all表示提醒所有人
# file_path不为None时,发送文件
# img_path不为None时,发送图片
wechat.send(content=None, mentioned_list=None, mentioned_mobile_lis=None, file_path=None, img_path=None)
from pyqueen import Dingtalk
# 初始化
wechat = Dingtalk(access_token='')
# content不为None时,发送文本
# mentioned_list: userid的列表,提醒群中的指定成员(@某个成员),@all表示提醒所有人
# mentioned_mobile_list: 手机号列表,提醒手机号对应的群成员(@某个成员),@all表示提醒所有人
wechat.send(content=None, mentioned_list=None, mentioned_mobile_list=None)
小工具
from pyqueen import Utils
# 压缩/解压缩
Utils.zip(from_path='', to_path='')
Utils.unzip(from_path='', to_path='')
# 删除文件
# 删除文件夹/子文件夹/文件
Utils.delete_file(path='')
# 计算md5值
Utils.md5(text='')
# 列表按n个一组拆分
Utils.div_list(listTemp=[1, 2, 3], n=2)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
pyqueen-1.0.3.tar.gz
(15.5 kB
view details)
Built Distribution
pyqueen-1.0.3-py3-none-any.whl
(17.5 kB
view details)
File details
Details for the file pyqueen-1.0.3.tar.gz
.
File metadata
- Download URL: pyqueen-1.0.3.tar.gz
- Upload date:
- Size: 15.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.18
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0f6b35012666b8a90b316eeebba3cd1ae27a31db5b5912bd69595ba14a40da36 |
|
MD5 | 562e073aac5e2e2b1c910e634339eb07 |
|
BLAKE2b-256 | 50494bdc318ba8b455219582c1d51fcf1a1cc09bdbb0e21c3e6c7889c77c6348 |
File details
Details for the file pyqueen-1.0.3-py3-none-any.whl
.
File metadata
- Download URL: pyqueen-1.0.3-py3-none-any.whl
- Upload date:
- Size: 17.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.18
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | bb1a375f6f4cb70bb3c9a60e6bfc1bbcdb119eacc9182397dd9edc6896b241f9 |
|
MD5 | 90f102807fb4ef297d28012c9ce49aa2 |
|
BLAKE2b-256 | 6f7c0b18ffb3183bdbea7bd946ac0c42caf50ef22c8b24794b4393fdd98cfe34 |