python数据处理库quick_data_clean


分享一个python数据处理的库,该库主要适用于数据格式复杂多变(各种数据格式各种数据库)的应用场合

安装方法: pip install quick_data_clean

该库主要功能如下

1. 简单快速的界面搭建(基于 tkinter 封装),目前能搭建的界面控件有限,但对于数据处理相关功能来说,应该足够

2. 主流的数据库支持(Sql Sqrver/Oracle/Mysql/Access/ Sqlite3/Excel)

3. 数据处理常用算法(加解密/解压缩/校验值计算/数字签名验证)

4. 快速读写Xml /Json/Excel 文件

看一个计算文件校验值的例子

import hashlib
import os
from quick_data_clean.quick_common import except_decorator
from quick_data_clean.quick_gui import Widget
from quick_data_clean.quick_algo import DataAlgo
from quick_data_clean.quick_algo_asymmetric import RSA
from quick_data_clean.quick_file import File

win = Widget()

@except_decorator
def select_file():
    filetypes = [('All File', '*')]
    file_path = Widget.open_file_dialog(filetypes)
    win.set_text("text1", file_path)


@except_decorator
def get_FileSize(filePath):
    fsize = os.path.getsize(filePath)
    return fsize


@except_decorator
def get_file_md5(file_name,hash_obj):

    win.set_progressbar_max_value("process1", get_FileSize(file_name))
    handle_size  = 0
    with open(file_name,"rb") as f:
        while True:
            data = f.read(1024* 1024)
            if not data:
                break
            hash_obj.update(data) 
            handle_size += len(data)
            win.set_progressbar("process1", handle_size)

    return hash_obj.hexdigest()


@except_decorator
def handle():

    certificate_file = win.get_text("text1")
    if len(certificate_file) == 0:
        Widget.messagebox_error("请先选择文件!")
        return

    hash_obj = None
    hash_info = win.get_comboxlist("com1")
    if hash_info == "md5":
        hash_obj = hashlib.md5()
    elif hash_info == "sha1":
        hash_obj = hashlib.sha1()
    elif hash_info == "sha224":
        hash_obj = hashlib.sha224()
    elif hash_info == "sha256":
        hash_obj = hashlib.sha256()
    elif hash_info == "sha384":
        hash_obj = hashlib.sha384()
    elif hash_info == "sha512":
        hash_obj = hashlib.sha512()
    else:
        Widget.messagebox_error("哈希算法非法,请重新选择")
        return
    
    win.set_text("text2", get_file_md5(certificate_file, hash_obj).upper())

    Widget.messagebox("OK...")


@except_decorator
def main():

    # 创建一个主窗体
    win.create_main_win("文件摘要(hash)校验工具", 300)

    # 添加一行控件,该行控件包括一个 text和一个button
    win.add_text_button("text1", "选择文件", select_file)

    # 添加一行控件,该行控件包含一个comboxlist
    cb_list = ["md5", "sha1", "sha224", "sha256", "sha384", "sha512"]
    win.add_comboxlist("com1", cb_list)

    # 添加一行控件,该行控件包括一个button,并靠右停靠
    win.add_button("计算摘要", handle)

    # 添加一行控件,该行控件包括一个progressbar
    win.add_progressbar("process1")

    # 添加一行控件,该行控件包括一个 label和一个text
    win.add_label_text("摘要", "text2")

    # 运行主窗口,进入事件循环
    win.run_main_win()


if __name__ == '__main__':
    main()

程序运行结果如下

 


 

 

暂无评论

注册用户登录后才能发表或者回复评论,请先登录 注册。