0

    探索Python工具库合集:提高开发效率的秘密武器

    2023.06.19 | admin | 187次围观

    前言

    在开发过程中,笔者积累了许多实用的Python工具函数模块,决定将它们整理成一个工具库集合,并与大家分享。本文将介绍笔者的Python工具库集合的核心功能和用途,

    在日常的Python开发中,笔者经常遇到一些重复性任务和常见的问题。我开始将常用的Python工具函数记录下来,以简化这些任务并提供高复用的解决方案。随着时间的推移,我逐渐形成了一个有用的工具库集合( 当然,还不够完善!!!)

    逐渐地,这个工具库集合对我来说非常实用,它简化了我的工作流程,提供了高度复用的解决方案。笔者意识到,这些工具函数也可能对其他Python开发者有所帮助和启发。

    遂在这里给读者做一下分享,希望这个工具库集合能为读者们提供一些便利和解决问题的思路。

    工具库概述

    这是一个 非常接地气的日常的Python工具库,如常见的 日期处理、打开Json、Excel文件、保存文件、图片处理、Windows窗口操作等等操作,它都有。

    读者朋友们可以在我的GitHub项目中找到完整的源代码。链接:

    项目组织

    目前工具库的各种工具如下所示,当然,我将继续维护和更新我的Python工具库集合,以提供更多功能和改进现有功能。

    工具库的功能如下所示,基本上看文件 utils文件的名称,就可以知道该文件有什么功能。

    python-utils/
    ├── utils/
    │   ├── __init__.py
    │   ├── config_utils.py
    │   ├── date_utils.py
    │   ├── docx_utils.py
    │   ├── excel_utils.py
    │   ├── file_utils.py
    │   ├── html_utils.py
    │   ├── json_utils.py
    │   ├── network_utils.py
    │   ├── os_utils.py
    │   ├── pdf_utils.py
    │   ├── photo_utils.py
    │   ├── string_utils.py
    │   ├── window_utils.py
    │   └── more_utils.py
    ├── installer.py
    ├── main.py
    ├── LICENSE
    ├── README.md
    └── requirements.txt
    

    说明:

    部分代码展示 date日期工具 (date_utils.py)

    这个模块包含了一些常用的日期和时间处理函数。它可以帮助你进行日期格式转换、日期计算、时区转换、获取日期区间等操作。无论是处理时间戳、解析日期字符串还是格式化日期输出,这个模块都能提供便捷的功能。

    from datetime import datetime, timedelta
    def get_date_range(start_date, end_date, date_format='%Y-%m-%d', is_string=False) -> list:
        """
        取日期范围
        """
        try:
            start_date = datetime.strptime(start_date, date_format)
            end_date = datetime.strptime(end_date, date_format)
        except ValueError as e:
            raise ValueError(f"Invalid date format: {e}")
        date_list = list()
        while start_date <= end_date:
            if is_string:
                date_list.append(start_date.strftime(date_format))
            else:
                date_list.append(start_date)
            start_date += timedelta(days=1)
        return date_list
    def date_diff_days(start_date, end_date) -> int:
        """
        计算两个日期之间的差异
        """
        try:
            if isinstance(start_date, str):
                start_date = start_date.replace('/', '-')
                start_date = datetime.strptime(start_date, '%Y-%m-%d')
            if isinstance(end_date, str):
                end_date = end_date.replace('/', '-')
                end_date = datetime.strptime(end_date, '%Y-%m-%d')
            return (end_date - start_date).days
        except ValueError:
            raise ValueError(f"Invalid date format, input the YYYY-MM-DD")
    def date_str_to_date(date_str: str, format_str='%Y-%m-%d') -> datetime:
        """
        将日期字符串转换为日期对象
        """
        try:
            return datetime.strptime(date_str, format_str)
        except ValueError:
            raise ValueError(f"Invalid date format, input the YYYY-MM-DD")
    ...
    

    os文件工具 (os_utils.py)

    这个模块包含了一些常用的文件操作函数。这个模块提供了一系列便利的文件操作函数。它可以帮助你读取和写入文件、复制和移动文件、创建和删除目录等。无论是处理文本文件、二进制文件还是目录操作,这个模块都提供了简单而强大的功能。(待更新

    import os
    def check_file_exists(path: str) -> bool:
        """
        检查文件是否存在
        """
        return os.path.exists(path=path)
    def normalize_file_path(path: str) -> Union[str, bool]:
        """
        标准化文件路径
        """
        if not check_file_exists(path):
            return False
        return os.path.normpath(path=path)
    def join_file_path(base_path: str, file_name: str) -> Union[str, bool]:
        """
        拼接文件路径
        """
        if not check_file_exists(base_path):
            return False
        return normalize_file_path(os.path.join(base_path, file_name))
    ...
    

    功能展示 生成PDF报告 (pdf_utils.py)

    生成PDF报告是许多项目中常见的需求。我编写了pdf_utils.py模块,集成了PDF生成工具,并提供了简洁的接口来创建和编辑PDF文档,添加文本、图像和表格等内容。

    示例代码:

    from utils import pdf_utils
    pdf = pdf_utils.PDFReport()
    pdf.add_text("Hello, world!")
    pdf.add_image("logo.png")
    pdf.add_table(data)
    pdf.save("report.pdf")
    

    dict保存为json

    from utils import dict_to_excel
        
    if __name__ == "__main__":
        if __name__ == '__main__':
        dict_to_excel(
            data_dict={'name': ['张三', '李四', '王五'], 'age': [18, 19, 20]},
            file_path='./demo.xlsx'
        )
    

    操作Windows窗口

    from utils import (
        minimize_window,
        maximize_window,
        set_top_window,
        close_window,
        hide_window,
        show_window
    )
    if __name__ == '__main__':
        # 最大化窗口
        minimize_window(title='微信')
        # 最小化窗口
        maximize_window(title='微信')
        # 置顶窗口
        set_top_window(title='微信')
        # 关闭窗口
        close_window(title='微信')
        # 隐藏窗口
        hide_window(title='微信')
        # 显示窗口
        show_window(title='微信')
    

    更新和未来计划 ✨✨

    读者朋友们可以在我的GitHub项目中找到完整的源代码。链接:

    我将继续维护和更新我的Python工具库集合,以提供更多功能和改进现有功能。

    同时python打开是黑窗口,笔者计划添加更多的示例代码和文档(准备ing),帮助开发者更好地理解和使用这些工具。

    并且鼓励读者们也加入其中python打开是黑窗口,分享你们的工具函数或对现有函数的改进。通过集体的努力和贡献,我们可以共同成长,共享知识,让这个工具库集合变得更加强大和有用。

    使用建议

    基本上,代码的注释写的都很清楚了。使用上看建议就足矣。

    为了更好地使用笔者的Python工具库集合,我提供以下使用建议:

    后话

    版权声明

    本文仅代表作者观点。
    本文系作者授权发表,未经许可,不得转载。

    发表评论