argparse 是 Python 标准库中用于解析命令行参数的模块,它取代了早期的 optparse 模块,提供了更强大、更灵活的命令行参数处理功能。
基本用法
import argparse
# 1. 创建解析器对象
parser = argparse.ArgumentParser(description='程序描述')
# 2. 添加参数
parser.add_argument('integers', metavar='N', type=int, nargs='+',
help='an integer for the accumulator')
parser.add_argument('--sum', dest='acc
import sys
import os
from typing import Any, Optional, Callable
import asyncio
import functools
import inspect
import pickle
import hashlib
import redis
import redis.asyncio as aioredis
class RedisCacheManager:
"""
同时支持同步与异步函数缓存的 Redis 缓存管理器。
缓存键统一使用 MD5 哈希格式化,避免键过长。
"""
_instance = None
def __new__(cls, *args, **
一个基于 aiomysql 的异步 MySQL 客户端封装,提供:
异步连接池管理,支持 async with 上下文管理
基础操作接口:
execute(sql, params) — 执行写操作,返回影响行数
fetch_one(sql, params) — 查询单条结果
fetch_all(sql
class printcolor:
# 打印函数,用于输出 错误信息(红色)
@staticmethod
def error(font, /, *args, **kwargs):
return print("\033[31m" + font + "\033[0m", *args, **kwargs)
# 打印函数,用于输出 成功信息(绿色)
@staticmethod
def success(font, /, *args, **kwargs):
return print("\033[32m" + font + "\033[0m", *args, **kwargs)
# 打印函数,用于输出 警告信息(黄色)
下面是普通图文验证码接口示例:
import base64
import time
import requests
class Captcha:
@staticmethod
def normal_image_ucba(img):
proxy_ip = get_proxy_ip()
base64_str = file_to_base64(img)
data = {
"clientKey": cfg.CAPTCHA_API_KEY,
"task": {
"type": "ImageToTextTask",
如下:
导入当前文件夹下所有脚本,脚本的name属性作为键,对象作为值返回
# auto_script/__init__.py
import importlib
import inspect
import os
from typing import Type, Dict
def import_all_script() -> Dict[str, Type]:
"""
导入当前目录下的py pyc文件所有类
键是“类的name属性”,值是对应的类对象。
"""
current_dir = os.path.dirname(os.path.abspath(__file__))
classes
import cv2
import numpy as np
"""
完成以下操作:
读取图像,转换为HSV颜色空间,并创建一个白色区域的掩码。
使用形态学操作去除小的白色区域。
再次使用形态学操作去除宽度较窄的区域。
创建反转掩码,将背景变为白色,字母变为黑色。
将反转掩码转换为二值化图像
将二值化图像应用到原始图像上。
将结果转换为纯黑白图像
保存处理后的图像到code2.png,并显示处理后的图像。
调整参数
白色HSV范围:lower_white和upper_white定义了白色的范围,可能需要根据具体图像进行微调。
结构元素大小:np.ones((2, 2), np.uint8)中的(2, 2)可以调整
import asyncio
import aiomysql
from typing import List, Tuple, Any
class AsyncMySQL:
def __init__(self,
host: str = '127.0.0.1',
port: int = 3306,
user: str = 'root',
password: str = 'root',
db: str = 'test_db',
**kwargs
):
安装
pip install loguru==0.7.3
代码
会将日志分别添加到不同的日志文件中,支持异步
import sys
from loguru import logger
from config import Log, ROOTPATH
# 添加自定义日志级别
DEBUGGER_LEVEL = "DEBUGGER????"
DEBUGGER_LEVEL_NO = 51 # 自定义日志级别对应的数值,错误日志是 50
class log:
"""统一日志接口"""
@staticmethod
def debugger(*me
web相关
url相关
字典转url参数
这个函数的功能是将字典或列表序列化为 URL 查询字符串(key=value 形式,用 & 连接)
def dict_to_url_params(obj: dict):
"""将字典转换为URL参数格式"""
# 对键进行排序
sorted_items = sorted(obj.items(), key=lambda x: x[0])
params = []
for key, value in sorted_items:
# 处理None值
if value is None:
v