
Python
文章平均质量分 83
Python 编程实战
汪子熙
18年深耕企业管理软件领域,精通 ABAP, Java, Javascript, Typescript, 精通 UI5, Fiori, Fiori Element, Angular, Kubernetes, SAP HANA, SAP BTP. 具有通过阅读 Github 上各种优秀的开源框架和工具源代码的习惯,对于我来说阅读源代码,就像阅读中国白话文一样轻松自然。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
如何使用 Python 代码将 markdown 代码渲染成 png
工具运行上述Python代码,成功将markdown文件渲染为。原创 2025-06-11 18:03:21 · 392 阅读 · 0 评论 -
Python 包初始化文件 __init__.py 全面解析
若希望在外部使用时只导入特定的子模块或属性,可在中定义__all__这时,外部执行时只会导入module1和module2,避免意外暴露内部实现细节。__all__原创 2025-06-06 17:12:57 · 1160 阅读 · 0 评论 -
Python 模块 __init__.py 中导入语句与 __all__ 用法详解
相对导入 (单个表示从当前包开始查找,保证引用的是项目本地模块,避免与全局包同名冲突。相对导入可以提高代码可维护性,并且在重构项目结构时更安全。的作用标记目录为 Python 包,使得解释器能够识别并加载该目录下的模块。可以在其中编写包级别初始化代码或聚合多个子模块的 API。__all__机制在模块或包级别声明可公开导出的名称列表,主要用于控制导入行为。仅列出在__all__中的名称会被导入到调用方的命名空间,从而避免内部实现细节泄露。medium.com如果省略包级别的__all__,执行。原创 2025-06-06 17:12:19 · 920 阅读 · 0 评论 -
从脚本到库:构建可复用的 Python 模块全流程解析
将函数封装成tools包只是起点。一旦完成目录布局、、打包脚本等基础工作,你就拥有了兼具复用、安装和分发能力的可维护代码资产。借助虚拟环境的可编辑安装,可在本地多项目间即时共享最新改动;借助标准化打包流程,可把tools发布到任何 PyPI 源,实现真正的一份代码,到处运行。原创 2025-06-06 17:11:46 · 835 阅读 · 0 评论 -
如何将 Python function 封装到一个 module 里
创建包目录:新建一个名为tools(或其他自定义名称)的目录,内部放置一个空的文件,标识该目录为 Python 包(将函数移入子模块:将原先定义的脚本(例如sysinfo.py)放入tools目录,并在其中写明函数内容,确保所有依赖(比如psutilplatformjson等)正确导入(在中导入函数:为了让消费者直接通过即可访问,需要在中添加等语句,将子模块的函数暴露到包的顶层命名空间(验证导入与使用:在项目根目录或其他脚本里,编写并调用,确保路径无误且输出符合预期。可选:发布与安装。原创 2025-06-06 17:11:14 · 926 阅读 · 0 评论 -
一段打印系统硬件信息的 Python 代码
跟踪系统硬件状态是运维与开发中常见的基本需求。platform模块可获取操作系统与硬件平台的概况信息;psutil模块提供丰富的 API,可跨平台采集 CPU、内存与磁盘使用情况;GPUtil可在支持 NVIDIA 显卡的环境下获取 GPU 相关指标;使用能生成可读的 JSON 字符串输出;结合调度、日志或监控系统,可实现自动化运维与实时告警。可根据具体业务场景,将脚本集成到容器、API 或消息队列,进而完善监控告警体系。原创 2025-06-06 17:10:35 · 965 阅读 · 0 评论 -
分享一段 Python 代码,解析本地公钥证书文件
【代码】分享一段 Python 代码,解析本地公钥证书文件。原创 2025-03-09 22:43:36 · 292 阅读 · 0 评论 -
使用 Python 解析 X.509 格式的公钥证书
从文件的内容来看,它是一个典型的 X.509 格式的证书,通常用于 SSL/TLS 证书或者身份认证中。这类证书通常以 “-----BEGIN CERTIFICATE-----” 和 “-----END CERTIFICATE-----” 标签包围,而其中的内容是经过 Base64 编码的二进制数据。为了提取其中的人类可读信息,接下来需要进行解码,并分析文件中的相关信息。以下是逐步解析和提取人类可读信息的过程。原创 2025-03-09 22:43:05 · 597 阅读 · 0 评论 -
使用 Python 解析本地公钥文件
这就是证书中常见的、用户可读的基本信息,包括持有者信息、证书的有效期、序列号以及使用的签名算法。(注:该证书为自签名证书,即发行者和主题相同)Python 源代码如下。原创 2025-03-08 16:50:06 · 199 阅读 · 0 评论 -
Python import 之后,Windows 下的库源代码究竟在哪里?
Python 作为一门解释型语言,在运行时需要动态加载库文件,以便程序可以访问所需的功能。当你在 Python 代码中使用import语句导入某个库时,Python 解释器会按照特定的路径查找该库并将其加载到内存中。那么,在 Windows 操作系统下,这些库的源代码到底存放在哪个文件夹?为了弄清楚这个问题,需要从 Python 的路径查找机制入手,并结合 Windows 目录结构进行分析。原创 2025-02-23 11:17:48 · 689 阅读 · 0 评论 -
使用 Python 解析本地 PDF 文件的内容
下面提供一个使用库的简单示例代码,该代码可以解析本地 PDF 文件中的文本内容。原创 2025-02-22 21:56:58 · 373 阅读 · 0 评论 -
用 Python 实现 ABAP Transport Request 系统
本文从需求拆解、设计思路、模块划分三个层面进行详细说明,最后给出一个完整可运行的 Python 代码示例,模拟 ABAP NetWeaver 系统中 Transport Request(传输请求)的核心功能。请注意,这个示例是对 SAP 传输请求系统的简化和模拟,主要用于演示创建、添加任务和对象、释放、导入等流程,而不是对真实 SAP 系统 CTS/CTS+ 全部细节的全面复刻。原创 2025-02-04 11:27:54 · 787 阅读 · 0 评论 -
用 Python 实现 ABAP Transport Request 系统
本文从需求拆解、设计思路、模块划分三个层面进行详细说明,最后给出一个完整可运行的 Python 代码示例,模拟 ABAP NetWeaver 系统中 Transport Request(传输请求)的核心功能。请注意,这个示例是对 SAP 传输请求系统的简化和模拟,主要用于演示创建、添加任务和对象、释放、导入等流程,而不是对真实 SAP 系统 CTS/CTS+ 全部细节的全面复刻。原创 2025-02-03 21:40:42 · 950 阅读 · 0 评论 -
Python 库 Pandas 使用介绍
Pandas 是一个功能强大的 Python 数据分析和数据处理库,广泛应用于各种数据驱动的领域。通过直观的接口和丰富的功能,Pandas 极大地简化了数据操作的流程。本篇文章将全面介绍 Pandas 的特点、安装方式及其多样化的使用场景,帮助读者掌握这一工具并高效处理数据。Pandas 的核心功能包括高效的表格化数据操作、灵活的数据筛选和分组、便捷的数据清理与转换等。DataFrame 和 Series:支持一维和二维数据结构,能够高效表示表格化数据。数据操作便捷。原创 2025-01-12 14:45:35 · 380 阅读 · 0 评论 -
利用 Python 打包 DLL 供 C# 调用的实现与解析
在现代软件开发中,跨语言调用是一项十分常见的需求。比如题主需求提到的把 Python 应用打包成 dll,供 C# 程序调用。Python 提供了多个模块和工具支持与其他语言的交互。利用ctypes或cffi模块,以及pybind11,我们可以将 Python 函数封装为 C 接口。同时,借助等工具,我们可以将 Python 程序打包为独立运行的二进制文件。原创 2024-12-11 14:11:16 · 1481 阅读 · 3 评论 -
深入解析 Python 的复杂异常处理机制
在实际应用中,内置异常可能不足以表达特定的业务逻辑需求。此时,自定义异常是必要的。自定义异常通常继承自Exception或其子类,可以通过覆盖构造函数添加额外的信息。try:这里的提供了额外的code属性以供业务逻辑使用。原创 2024-12-09 13:44:49 · 692 阅读 · 0 评论 -
利用 Python 实现图形用户界面(GUI)中的 MVC 设计模式
图形用户界面(GUI)开发中,MVC(模型-视图-控制器)设计模式是一种重要的方法论,它有助于提高应用程序的可维护性和扩展性。MVC 是一种软件架构模式,旨在将程序的业务逻辑、用户界面和输入控制逻辑分离。MVC 模式通过将各个组件分离,使得代码更加模块化,逻辑更加清晰,可以很方便地进行修改和扩展。原创 2024-12-06 09:21:57 · 1007 阅读 · 0 评论 -
深入解析 Python Flask: 架构、应用与实现实例
Flask 是一个基于 Python 的 Web 微框架,它提供了开发 Web 应用最基础的工具和组件。Flask 之所以称为微框架,是因为它与一些大型 Web 框架(如 Django)不同,并不捆绑数据库管理、表单验证等功能,而是保持了极简的核心,使开发者可以根据需求选择合适的扩展来构建应用。Flask 的设计哲学是简单优先、灵活性强,让开发者对应用的构建过程有更多的控制。Flask 由 Armin Ronacher 开发,起初是 Pocoo 项目的一部分。Werkzeug和Jinja2。原创 2024-12-05 19:06:28 · 1395 阅读 · 0 评论 -
使用 Python 的 mmap 模块高效处理大文件,避免内存耗尽
在处理大文件的场景中,尤其是在文件大小远远超过系统内存容量时,传统的文件读取方式会导致内存不足的情况。这时候,Python 提供的mmap模块是一种强有力的工具,它允许你将文件映射到内存中,从而以更加有效的方式进行文件操作,而无需将整个文件一次性加载到内存中。原创 2024-12-05 18:54:10 · 940 阅读 · 0 评论 -
深入探索 Python 中 itertools 模块的高级用法
itertools模块是 Python 标准库的一部分,提供了一些用于操作迭代器的函数。无限迭代器终止于最短输入的迭代器组合生成器这些迭代器的设计目标是以高效、优雅的方式解决许多常见的迭代需求。借助itertools,我们可以避免手动创建复杂的嵌套循环,从而使代码更加简洁和可读。原创 2024-12-05 18:52:57 · 827 阅读 · 0 评论 -
探讨 Python 是动态语言的原因及其实现细节
在探讨 Python 是动态语言之前,需要对什么是动态语言有一个明确的理解。编程语言通常分为静态语言和动态语言两种。静态语言的变量类型是在编译期间确定的,而动态语言的变量类型是在运行时确定的。换句话说,在静态语言中,变量的类型在编译时是已知的,并且一旦声明便不可更改。而在动态语言中,变量的类型会根据赋给它的值在运行时进行推断。这一差异意味着,在静态语言中,代码在编译时必须确定每个变量的类型,并且会在类型不匹配时抛出错误。原创 2024-12-05 18:51:51 · 919 阅读 · 0 评论 -
深入理解 Python FastAPI:从基本介绍到完整代码实现
为了创建用户,我们需要定义用户的数据结构。在 FastAPI 中,通常通过Pydantic来定义数据模型,这些模型可以帮助我们验证传入的数据。id: intname: strage: intemail: str在上面的代码中,我们定义了一个名为User的类,它继承自BaseModel。Userid:用户 ID,是一个整数。name:用户名称,是一个字符串。age:用户年龄,是一个整数。email:用户的电子邮件,是一个字符串。原创 2024-12-03 19:13:43 · 1219 阅读 · 0 评论 -
Pandas 深度解析及 Python 实现案例
Pandas 是 Python 数据分析中不可或缺的工具,它极大地简化了数据读取、处理和分析的过程。通过Series和DataFrame,用户可以方便地操作结构化的数据,从中提取出有价值的信息。此外,Pandas 还提供了强大的数据清洗、处理和分析功能,使得处理大规模数据变得非常简单高效。掌握 Pandas 的基本功能是进入数据分析领域的关键一步,结合matplotlibnumpy等库的使用,可以有效地提升数据科学分析的效率。原创 2024-12-03 19:13:03 · 1692 阅读 · 0 评论 -
浅谈 Python 函数中 return 的用途
在编写 Python 函数时,return语句扮演着至关重要的角色。无论这一行是否存在,add函数的加法操作都会执行,并且结果会被打印出来。这行代码的意义何在?原创 2024-11-24 22:53:50 · 950 阅读 · 0 评论 -
深入理解 Python 中 async 和 await 实现复杂的异步 IO 操作
在探讨如何有效地使用async和await之前,先理解一些背景概念会很有帮助。Python 的异步编程主要用来应对高并发任务,如处理大量网络请求或文件 IO。通常,异步编程的目的是最大化 CPU 的利用率,让它在等待某些 IO 操作完成的同时去执行其他任务,以减少阻塞和提高程序的整体性能。通过有效地使用async和await,Python 能够实现非常高效的异步 IO 操作,尤其适用于需要处理大量 IO 请求的场景。原创 2024-11-23 14:25:54 · 718 阅读 · 0 评论 -
Python txt 文件操作详解:逐步拆解及实现源代码
本文详细介绍了 Python 中如何对 txt 文件进行操作处理,涵盖了从文件的读取、写入、追加,到文件内容的搜索、替换等操作。通过这些操作,可以灵活处理文本文件中的各种需求。在面对大文件时,还演示了如何逐行处理以避免内存占用过高的情况,同时通过异常处理来提高程序的健壮性。此外,本文还通过一个综合实例展示了如何统计文件中的词频,并将结果保存为 CSV 文件,便于进一步的数据分析。原创 2024-11-23 14:24:11 · 1061 阅读 · 0 评论 -
白光干涉相位恢复算法详解及 Python 实现
白光干涉的相位恢复算法在许多精密测量领域有广泛的应用,例如表面轮廓测量、薄膜厚度测量等。重心法适合那些对精度要求不高且希望快速获得相位信息的应用场景。移相法由于其高精度,被广泛应用于需要准确测量的场合,例如光学表面的高精度测量。傅立叶变换法适合在图像中存在较多噪声的情况下使用,通过频域滤波可以有效消除噪声。空间频率法则主要应用于条纹频率显著、对频域信息依赖性强的测量场景。不同算法在实际应用中的表现会因实验条件的不同而变化。例如,在表面轮廓测量中,移相法因其精度较高,通常会是首选;原创 2024-11-23 14:17:34 · 1770 阅读 · 0 评论 -
如何简便地缩短文件名称长度
文件名称的长度往往决定着在不同操作系统和文件系统中的兼容性与便利性。随着文件层次结构复杂度的增加,长文件名会使得路径难以处理,增加管理成本,同时在某些情况下还可能导致系统的错误。原创 2024-11-23 14:16:29 · 1492 阅读 · 0 评论 -
Python 装饰器:设计原因与详细分解
在深入探讨装饰器的设计原因之前,我们先对它进行简单的描述。Python 的装饰器本质上是一个可以修改其他函数或类行为的函数,通常以符号紧跟在函数定义的前面。这种特殊的函数可以在不修改原始代码的情况下,增强或改变目标对象的功能,使得 Python 具备了一种非常优雅的代码复用与增强机制。# 定义一个简单的装饰器,用于打印函数执行时间。原创 2024-11-20 22:15:54 · 947 阅读 · 0 评论 -
Monkey-Patching:软件开发中的灵活手段与潜在风险
Monkey-patching 是一种在运行时动态地修改程序组件行为的方法。在 Python 中,这种操作通常涉及对模块、类或实例方法的重定义。Monkey这个词的寓意便是灵活地跳跃和快速地更改,而patching则象征着对现有代码进行某种形式的补丁修补。因此,monkey-patching 意味着直接向现有程序中添加代码,以改变它的行为,而无需改动原始代码文件。print(calc.add(2, 3)) # 输出 5# Monkey-patching 操作。原创 2024-11-19 13:27:19 · 994 阅读 · 0 评论 -
Python max 函数工作原理详细解析
通过对Python 中的max()函数用于返回输入中“最大”的元素,它的比较方式取决于输入的数据类型。对于集合类型的数据,Python 会根据集合中的元素进行比较,而这种比较类似于字典序的比较。在{1}{2}{3}的情况下,Python 会将{1}视为最大的集合,这是因为 Python 按照集合元素的字典序来比较它们。max()函数可以通过key参数来自定义比较规则,以便根据不同的需求来找到最大值。之所以返回{1},是因为 Python 使用字典序比较集合中的元素,而在{1}{2}{3}原创 2024-11-17 16:13:57 · 1148 阅读 · 0 评论 -
Python 中使用 async 和 await 实现复杂异步 IO 操作的深入解析
首先,导入aiohttp和asyncio在这里,是一个异步上下文管理器,用于处理网络连接的开启和关闭。使用来等待并获取请求结果,这样不会阻塞其他任务。原创 2024-11-15 19:00:03 · 694 阅读 · 0 评论 -
如何在 Python 中安全地使用多进程和多线程进行数据共享
在 Python 中,使用多线程和多进程进行数据共享时,必须考虑线程安全和进程间通信的问题。多线程数据共享使用来确保对共享数据的安全访问。使用来实现线程安全的生产者消费者模型。多进程数据共享使用和来共享简单数据类型。使用来共享复杂的数据结构(如列表和字典)。使用来实现进程间的生产者消费者模型。每一种方法都有其适用的场景和局限性。在实际开发中,需根据任务的性质和数据共享的复杂度选择合适的方式。希望这些介绍能够帮助你更好地理解 Python 中如何安全地进行多线程和多进程的数据共享。原创 2024-11-11 08:28:10 · 900 阅读 · 0 评论 -
Python中如何使用 collections 模块中高级数据结构如 namedtuple、deque
是 模块中的一种工厂函数,用于创建具名元组(named tuples)。具名元组和普通的元组类似,但区别在于它们的字段可以用名字来访问,而不需要使用索引。它使得代码更具可读性,尤其是在存储复杂的数据时,不再需要记住索引位置。 非常适合需要类似结构的场景,比如你需要表示一个二维点 、汽车信息 ,这时候可以用 创建结构化数据,使代码更易于阅读和维护。我们从定义开始,一步步来演示如何使用 。假设我们需要表示一个二维点 。解释代码使用 创建了一个类 ,它的字段是 和 。使用 创建了一个具体的实例原创 2024-11-11 07:31:50 · 879 阅读 · 0 评论 -
如何在Python中实现跨平台的桌面应用程序界面?
在 Python 中实现跨平台的桌面应用程序界面,可以通过选择合适的 GUI 库(如 PyQt5),创建基本的窗口界面,添加必要的控件和布局,处理跨平台的差异性,并最终打包发布应用程序来实现。PyQt5 提供了强大的工具来创建复杂的桌面应用程序,同时 Python 的生态系统也为跨平台开发提供了丰富的支持。原创 2024-11-11 07:31:08 · 883 阅读 · 0 评论 -
浅谈 Python 的作用域概念
Shell 和 Python 在作用域管理上的差异反映了它们各自的设计目标。Shell 作为一种脚本语言,旨在快速地进行系统管理和任务自动化,因此它的变量管理较为宽松,默认采用全局作用域,方便不同函数之间的变量传递,但也带来了潜在的变量污染风险。Python 作为一种通用的编程语言,更注重代码的安全性和可维护性,通过函数、类和模块严格地划分作用域,并使用 LEGB 规则管理变量的可见性,从而有效地避免变量名冲突。原创 2024-11-07 17:10:28 · 919 阅读 · 0 评论 -
Python asyncio 库的使用介绍
asyncio是一个用于编写异步 IO 程序的库,主要用于执行并发任务而不需要使用线程或多进程。它利用事件循环来调度和执行任务,允许开发者通过异步编程模型实现非阻塞的 IO 操作。它最适合那些需要高并发处理但对 CPU 需求较低的场景,比如网络请求、大量文件读写等。asyncio是 Python 中强大而灵活的工具,用于构建高效的异步 IO 程序。它的主要特点包括基于事件循环的协程执行、轻量级的资源消耗,以及简洁的异步语法。原创 2024-11-05 11:08:25 · 477 阅读 · 0 评论 -
如何在 Python 中实现复杂的事件驱动架构?
在 Python 中,事件驱动架构的实现有多种方式,可以使用标准库(例如asyncio)实现异步事件处理,也可以利用成熟的第三方库,如blinkerpydispatch或基于消息队列的工具(如RabbitMQKafka后者基本都是业界如雷贯耳,互联网大厂面试必问的框架。我们下面将架构图里的组件,逐个进行拆解和介绍。为了实现事件驱动架构,首先需要一个事件管理器,负责注册和管理事件监听器,以及分发事件。在 Python 中,事件管理器可以通过简单的类来实现。原创 2024-11-05 10:47:34 · 1368 阅读 · 0 评论 -
如何在 Python 中利用 pandas 和 numpy 进行高级数据清洗和转换
经过以上分步骤处理,我们对包含缺失、不一致和异常值的数据进行了全面的清洗和标准化。import re# 原始数据data = {"客户ID": [101, 102, 103, 104, 105],"姓名": ["张三", "李四", None, "王五", "赵六"],"年龄": ["25", "三十", "42", "NaN", 28],"电话": ["13800138000", "无", "13900139000", "12345678901", "13900139001"],原创 2024-11-01 10:19:18 · 686 阅读 · 0 评论 -
如何在 Python 中利用反射(reflection)动态调用函数和访问对象的属性?
反射在 Python 中是一个非常强大的工具,它允许程序在运行时动态地检查、调用和修改对象的属性和方法。在 Python 中,反射功能主要通过内置函数getattr()setattr()hasattr()和delattr()来实现。这些函数让你可以动态地访问和修改对象的属性,以及调用对象的方法,甚至可以在不知道具体函数名称的情况下,通过字符串形式动态地调用函数。这种能力在开发动态系统、插件系统和其他需要灵活反应的应用中非常有用。原创 2024-10-28 08:21:55 · 1423 阅读 · 0 评论