Skip to main content

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


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)

Uploaded Source

Built Distribution

pyqueen-1.0.3-py3-none-any.whl (17.5 kB view details)

Uploaded Python 3

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

Hashes for pyqueen-1.0.3.tar.gz
Algorithm Hash digest
SHA256 0f6b35012666b8a90b316eeebba3cd1ae27a31db5b5912bd69595ba14a40da36
MD5 562e073aac5e2e2b1c910e634339eb07
BLAKE2b-256 50494bdc318ba8b455219582c1d51fcf1a1cc09bdbb0e21c3e6c7889c77c6348

See more details on using hashes here.

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

Hashes for pyqueen-1.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 bb1a375f6f4cb70bb3c9a60e6bfc1bbcdb119eacc9182397dd9edc6896b241f9
MD5 90f102807fb4ef297d28012c9ce49aa2
BLAKE2b-256 6f7c0b18ffb3183bdbea7bd946ac0c42caf50ef22c8b24794b4393fdd98cfe34

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page