python工具类
Project description
Python工具类
简介
此工具类致力于封装一些常用的python代码,目前支持log日志,progress进度条,mysql数据库操作,雪花算法唯一id,时间工具类等方法
使用说明
安装
pip install yaoys-python-tool
更多例子请查看demo文件夹下相关代码
目前已经支持的功能
- log日志记录,包括打印至控制台和保存到文件,输出到控制台支持针对不同级别的日志设置不同的颜色
- 进度条展示:支持多种样式的进度条,并且支持将进度保存到log日志文件
- 数据集划分,包括划分为训练数据集,测试数据集,验证集,划分方式可以是使用pandas读取后的数据格式(split_datautil) ,也可以直接使用文件路径,使用文件路径的方式暂时只支持划分测试集和训练集,文件格式为csv或者TXT(split_files) ,具体使用可查看demo/data/dataDemo.py
- 唯一id,雪花算法实现唯一ID
- 时间工具类
- 数据库的连接与增删改查,暂时只支持mysql数据库
- 文件工具类,包括读取csv和写入csv文件,读取写入TXT文件
log日志
# log日志demo
from yaoysTools.log.logutil import getLogger, log_info, MY_LOG_INFO
# 说明:如果设置保存日志到日志文件,则必须设置日志文件路径,此时 save_log2_file=True, log_path='../log'
# 封装了log_info,log_error,log_warn,log_debug等方法
# 日志颜色将根据不同的日志等级设置为不同的颜色
logger = getLogger('test', log_path='../log', log_level=MY_LOG_INFO, save_log2_file=True)
log_info('test', my_logger=logger)
# 运行结果如下:
[2022 - 07 - 23 13: 31:25, 05
8] [log_name: test] [INFO][filename:some_thing_test.py][func_name:非方法调用(Not
function)] [15 line] - message: test
# 可在log文件中查看到相关日志
progress 进度条
# 进度条demo
# 进度条工具整合了第三方的工具,代码地址:https://github.com/verigak/progress.git
# 针对以上源码进行了封装,修改,增加将进度保存到日志文件中
from time import sleep
from yaoysTools.progress.progressUtil import PROGRESS_TYPE_PIXELBAR, definitionProgressBar
# 进度条可选择的样式有多种,如果不知道具体的总的长度,可以使用spinner,原作者提供了多种spinner
PROGRESS_TYPE_BAR = 'Bar'
PROGRESS_TYPE_CHARGING_BAR = 'ChargingBar'
PROGRESS_TYPE_FILLINGSQUARESBAR = 'FillingSquaresBar'
PROGRESS_TYPE_FILLINGCIRCLESBAR = 'FillingCirclesBar'
PROGRESS_TYPE_INCREMENTALBAR = 'IncrementalBar'
PROGRESS_TYPE_PIXELBAR = 'PixelBar'
PROGRESS_TYPE_SHADYBAR = 'ShadyBar'
PROGRESS_TYPE_SPINNER = 'Spinner'
PROGRESS_TYPE_PIESPINNER = 'PieSpinner'
PROGRESS_TYPE_MOONSPINNER = 'MoonSpinner'
PROGRESS_TYPE_LINESPINNER = 'LineSpinner'
PROGRESS_TYPE_PIXELSPINNER = 'PixelSpinner'
# 注意,如果需要将进度保存到日志中,必须设置 is_save_log=True,并且设置log日志的路径
# 你还可以自己定义自己的logger.如果不定义,将采用默认的logger,自定义logger使用的方法是log日志中的getLogger
# 自定义logger时,同样的如果需要将进度保存到日志中,必须设置 is_save_log=True,并且设置log日志的路径,必须设置is_only_file=True,否则会在控制台输出进度
# logger = getLogger(self.message, log_level=MY_LOG_INFO, log_path=self.log_path, is_only_file=True)
# 如果采用默认的logger,则不需要设置my_logger=logger
# 以下为显示进度时间样式
PROGRESS_ELAPSED = 'elapsed' # 正向时间增加,只显示秒数
PROGRESS_ELAPSED_TD = 'elapsed_td' # 正向时间增加,显示时,分,秒
PROGRESS_ETA = 'eta' # 倒序时间减少,elapsed的逆序
PROGRESS_ETA_TD = 'eta_td' # elapsed_td的逆序
默认显示时间,时间格式为:elapsed_td,如果需要不显示时间, 设置: need_show_time = False
bar = definitionProgressBar(progress_type=PROGRESS_TYPE_PIXELBAR,
count=100, is_save_log=True, log_path='../log', my_logger=logger, need_show_time=True,
show_time_type=PROGRESS_ELAPSED_TD).get_progress()
for i in range(100):
# Do some work
sleep(0.01)
bar.next()
bar.finish()
# 控制台运行结果:
Progress | ################################| 100/100 100.00% 0:00:11
# log日志输出进度如下:
[2022 - 08 - 26 21: 0
8: 38, 976][log_name: Progress][INFO][filename:E:\MyJob\PyCharm\PythonTools\yaoysTools\progress\__init__.py][
func_name: writeln][131 line] - message: Progress | ################################| 100/100 100.00% 0:00:11
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
yaoys-python-tool-0.0.51.tar.gz
(25.8 kB
view details)
File details
Details for the file yaoys-python-tool-0.0.51.tar.gz
.
File metadata
- Download URL: yaoys-python-tool-0.0.51.tar.gz
- Upload date:
- Size: 25.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 pkginfo/1.9.2 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.10.1 urllib3/1.26.9 tqdm/4.64.0 importlib-metadata/4.8.1 keyring/23.4.1 rfc3986/1.5.0 colorama/0.4.4 CPython/3.6.15
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2a2c9ab01fbb0d60669e8e17e2a1662e361d1416303499db855e8b8189ae5013 |
|
MD5 | 3b7ba16c1179758be427b453e3cd6459 |
|
BLAKE2b-256 | 86b9b4268359fd96d83e43a643579416f5ead62eebc4b2230ed43470bed8ac19 |