python教程技术文章
-
文章 · python教程 | 5天前 | 并发 · 日志 · Python教程 · 多进程 · 排障 · Python Fork multiprocessing 多进程日志 spawn QueueHandler QueueListener
Python 多进程直接写终端或同一个文件时,日志容易互相交错。本文用 multiprocessing.Queue、QueueHandler 和 QueueListener 集中日志出口,并解释 spawn、fork、队列关闭与全局顺序的边界。300 收藏 -
Python typing.Protocol 适合把第三方对象需要满足的最小接口写成结构化类型,不要求对方继承本地基类。本文用存储适配场景说明 Protocol、runtime_checkable 与真正行为测试各自能保证什么。298 收藏 -
讲清 Python enum.StrEnum 的显式值、auto()、.value、str()、JSON 序列化和旧版本兼容排查方法。298 收藏 -
importlib.metadata 读取的是已安装 distribution 的版本元数据,不是源码目录里的模块版本。本文从 pyproject.toml 配置、解释器一致性、distribution 名称和 PackageNotFoundError 四个方面给出排查方法。287 收藏 -
Python pathlib 拼接用户路径时,绝对路径段会让前面的基目录失效。本文对比 / 与 joinpath(),说明如何先判断相对路径,再用 resolve()、relative_to() 和 is_file() 检查目录边界与文件类型。286 收藏 -
csv.DictReader 遇到缺失列时不会自动替业务规则报错。本文用一个订单 CSV 导入器区分缺失列、缺失值和多余列,并给出带文件名、行号和字段名的 Python 错误处理代码。286 收藏 -
文章 · python教程 | 1天前 | 文件操作 · Python教程 · pathlib · 备份脚本 · 符号链接 目录复制 Python pathlib Path.copy Path.copy_into preserve_metadata
Python 3.14 的 pathlib.Path.copy 与 copy_into 解决了路径对象复制的表达问题,但二者对目标参数的含义不同。本文用备份目录场景说明如何保留源目录名、处理目标已存在、控制元数据与符号链接,并给出旧版本兼容边界。282 收藏 -
用 dataclasses.replace 修改 Python dataclass 时,按字段声明、InitVar、init=False 和 __post_init__ 的边界排查常见 TypeError 与 ValueError,并掌握返回新对象的正确写法。282 收藏 -
切换 Python 3.14 free-threaded 构建前,按解释器状态、wheel 标签、模块声明、C API 并发风险和 PYTHON_GIL=0 回归测试检查扩展兼容性。270 收藏 -
Python sqlite3 多线程报错通常不是 SQL 写错,而是一个 Connection 被创建它的线程之外复用。本文给出每线程独立连接和共享连接加锁两种改法,并说明提交与回滚边界。264 收藏 -
Python dataclass 可以用 InitVar 接收只在构造阶段使用的配置或环境参数,再通过 __post_init__ 生成真正字段。本文同时说明 default_factory、frozen=True 和字段顺序的边界。264 收藏 -
讲清 Python free-threaded 构建中 C 扩展的兼容声明:多阶段初始化使用 Py_mod_gil,单阶段初始化使用 PyUnstable_Module_SetGIL,并区分容器临界区与扩展自有状态保护。260 收藏 -
讲清 Python dataclass 的 frozen=True 为什么仍能保存可变缓存,并用 default_factory、init=False、compare=False 和 hash=False 设计按实例隔离的内部缓存。256 收藏 -
Python 的 typing.Protocol 主要服务静态结构化类型检查;即使加上 @runtime_checkable,isinstance() 也只适合确认属性是否存在,不会验证方法签名、参数类型、返回类型和业务行为。本文用代码拆开两种检查的边界,并给出运行时补强方案。254 收藏 -
pathlib 的 Path.glob 和 glob.glob 对点号开头文件的处理规则不同。本文用原创示例说明如何匹配隐藏文件、递归扫描,以及按需排除隐藏目录。244 收藏