当前位置: 首页 > news >正文

刷完这60个标准库模块,成为Python骨灰级玩家

python强大,主要是因为包多,且不说第三方包,单是标准库就已让人望而生畏。

如果从第一篇整理标准库的博客算起,如今已有三个年头。在整理标准库的过程中,查阅了大量资料和官方文档,很多中文资料都有一个共同的特点——机翻风格严重。对于一些不常用,但有助于理解python运行机制的模块,不仅中文资料乏善可陈,连英文资料都很稀缺,所以又不得不翻阅源码,这个工作还是十分耗时的。

文章目录

  • 快速入门
  • 数学、数据结构与函数式
  • 系统、路径、文件读写
  • 并发、效率与混合编程
  • 字符串、编码、日期时间
  • 配置文件和压缩解压
  • GUI编程Tkinter
  • 其他

快速入门

首先,对于尚未入门的朋友,这里准备了四篇快速入门的文档

  • 1小时快速入门Python
  • 如何用两个晚上教会妹纸Python
  • 写给Matlab用户的Python急速入门手册
  • 从Python新手到高手的90行代码

数学、数据结构与函数式

在入门之后,就应该迅速累积代码量了,这里建议从数学模块开始,下面六个模块涵盖了基础计算模块math;复数计算模块cmath;基础统计模块statistics;伪随机数生成模块random;分数表达模块fractions;精确计算模块decimal。此外,Python内置了针对列表的二分、搜索算法,包括三个相关模块:有序列表查找 bisect、堆算法 heapq、紧凑的数组类型 array

  • Python内置的6个数学模块
  • Python排序搜索算法

python号称函数式语言,而下面的模块则是助力Python成为函数式语言的三大神器,其中运算符函数化可以提供括号风格的书写格式;functools可以加速Python的龟速循环与递归;itertools可以避免迭代对象对内存的大量占用。

  • 运算符函数化operator模块:
  • 高手分界线functools
  • 高手专用itertools

系统、路径、文件读写

这部分内容中,使用最频繁的就是文件读写: 文件读写函数open

os模块复现了操作系统的部分功能,提供了包括路径操作、进程管理等一些列功能。其中的os.path针对不同操作系统的文件组织方式,提供了相同的API,实现了跨平台

  • 调用操作系统 os模块
  • 路径处理之os.path
  • 路径匹配 glob
  • 高阶文件操作 shutil
  • 系统错误码
  • 系统设置 sys
  • 用platform模块获取系统信息
  • Python数据的标准存储Pickle

并发、效率与混合编程

对多线程和多进程的友好支持,挽救了Python的速度

  • 多线程:Python多线程详解 💗定时任务sched
  • 多进程:进程通信 💗进程池

此外,这篇用了cuda之后速度起飞,尽管主要目的是介绍显卡计算,但测试了多线程和多进程的对比,有助于理解Python的并发逻辑,值得一看。

如果想进一步提高Python的速度,可以利用Python的胶水语言的特色,通过Python和C的混合编程,达到开发速度和运行速度的双赢,走上人生巅峰

  • Windows系统中python和C混合编程

字符串、编码、日期时间

字符串最核心的问题就是格式化与搜索,前者的功能由字符串本身实现,后者则需通过强大的正则表达式。pprint针对字典、列表优化了输出方案,textwrap解决了针对段落文本的格式化问题。

  • python字符串
  • 正则表达式 re
  • 美化输出 pprint
  • 段落格式化 textwrap

下面是Python标准库提供的四种编码模块:

💎二进制转化 struct💎 ASCII编解码 binascii💎 base编码家族💎 unicode处理模块

密码也是一种编码方法,Python标准库提供了密码级别的随机数生成模块,以及哈希函数族模块。

secrets模块生成密码💎 哈希模块hashlib

与日期时间相关的模块,实际上提供的也是一种编码转换功能,即如何将一串时间戳转换为可读的数字,或者更进一步,转换为可读性更强的字符串。本文整理了如下三个与日期时间相关的模块,其中time模块相对来说使用更频繁一些,除了获取系统时间之外,还提供了sleep这种暂停线程的系统功能。

  • time模块
  • 日历打印 calendar
  • 时区变换 zoneinfo

配置文件和压缩解压

python提供了一些基本的文件类型处理模块,列表如下

  • csv:常用的数据格式
  • json:网上最流行的信息传输文件
  • toml:可读性超强的配置文件
  • ini文件:windows最常用的配置文件
  • html

此外,Python标准库中提供了一系列的压缩解压模块

  • 压缩和解压模块zlib
  • bz2压缩算法💎 lzma压缩算法
  • 处理gz文件的gzip💎 处理zip文件的zipfile

图像类型识别模块imghdr和音频文件识别模块sndhdr已被新版本的Python弃用,官方文档推荐了filetype,可以根据内容推测超过60种文件类型。

GUI编程Tkinter

Python标准库内置Tkinter,可进行简单的GUI编程

  1. 初步
  2. 绑定参数
  3. 布局
  4. 扫雷小游戏
  5. 绑定事件

其他

  • 版本转换2to3 将python2的代码批量转换为python3代码
  • 深拷贝和浅拷贝 涉及到Python的运行逻辑,了解这一点,不仅可以避免一些不必要的bug,对优化代码也有一定的作用。
  • 套接字通信:socket 可提供低级别的网络服务,认识IP协议,便从这里开始
  • urllib统计博客阅读量 urllib可通过url来获取对应的网页,爬虫可从这里开始

以及三个用于测试、调试的模块:

  • 用timeit测试函数运行时间
  • 单元测试模块:TestCase
  • 日志记录模块:logging

最后,本文总结了下面几个基本的音频处理和色彩转换模块

  • 音频数据处理:audioop
  • 播放音乐:winsound
  • 色彩模式转换模块:colorsys
  • wav格式处理

相关文章:

刷完这60个标准库模块,成为Python骨灰级玩家

python强大,主要是因为包多,且不说第三方包,单是标准库就已让人望而生畏。 如果从第一篇整理标准库的博客算起,如今已有三个年头。在整理标准库的过程中,查阅了大量资料和官方文档,很多中文资料都有一个共…...

EasyExcel的简单使用(easyExcel和poi)

EasyExcel的简单使用 前言 Excel读 1.实体类 2.读监听器与测试类 3.输出结果 Excel写 1.实体类 2.写入Excel的测试类 3.输出结果 填充Excel 1.Excel模板 2.测试类 3.输出结果 前言 EasyExcel类是一套基于Java的开源Excel解析工具类,相较于传统的框架如Apache poi、…...

命名空间 namespace

一、命名空间的定义 定义命名空间,使用namespace关键字,后面跟命名空间的名字,然后接一对花括号{ } 即可,{ }中即为命名空间的成员。 1.一般定义 namespace test {int a 10;int b 100;int ADD(int x, int y){return x y;} }…...

我能“C”——初阶指针(上)

目录 1.什么是指针? 2. 指针和指针类型 3.野指针 3.1野指针的成因 3.2 如何规避野指针 1.什么是指针? 指针理解的2个要点: 1. 指针是内存中一个最小单元的编号,也就是地址 2. 平时口语中说的指针,通常指的是指针…...

Android高级工程师工资为何让人艳羡不已

很多人都想有一个月入过万的梦想,为了实现这个梦想,很多人都付出了一定的努力,但除了付出,选择一个好的行业的也是非常重要的,就眼下而言,最为多金的职业莫过于Android高级工程师,为什么Android…...

什么猫猫最受欢迎?Python采集猫咪交易数据

前言 在日常生活中,我们看到可爱的猫咪表情包,总是会忍不住收藏 认识的一些朋友也养了猫,比如橘猫、英短、加菲猫之类的 看他们发朋友圈撸猫,老羡慕了,猫咪真的太可爱啦。 你是不是也动过养猫猫的小心思呢~反正我是动…...

使用Nextcloud搭建私人云盘,并内网穿透实现公网远程访问

文章目录摘要视频教程1. 环境搭建2. 测试局域网访问3. 内网穿透3.1 ubuntu本地安装cpolar3.2 创建隧道3.3 测试公网访问4 配置固定http公网地址4.1 保留一个二级子域名4.1 配置固定二级子域名4.3 测试访问公网固定二级子域名摘要 Nextcloud,它是ownCloud的一个分支,是一个文件…...

行业盛会|2023中国(东莞)国际测量控制及仪器仪表展览会

时间:2023年11月16-18日 地点:广东现代国际展览中心 ◆展会背景background: 众所周知,当今世界已经进入信息时代,信息技术成为推动科学技术高速发展的关键技术。…...

redis集群 服务器重启测试

redis集群 服务器重启测试1、集群规划:2台服务器 每台服务器运行3个redis实例2、重启2台服务器后redis实例没有自动重启最后一对主从节点比较 重启实例后和之前的主从分配3、再次重启2台服务器4、主从同步测试1、集群规划:2台服务器 每台服务器运行3个re…...

Diffusion的unet中用到的AttentionBlock详解

AttentionBlocktorch.splittorch中的permute的用法torch.transpose()view()torch.bmmsoftmax(x, dim-1)Diffusion的unet中用到的AttentionBlock详解class AttentionBlock(nn.Module):__doc__ r"""Applies QKV self-attention with a residual connection.Input…...

ElasticSearch索引文档写入和近实时搜索

一、基本概念 1.Segments In Lucene 众所周知,ElasticSearch存储的基本单元Shard,ES中一个Index可能分为多个Shard,事实上每个Shard都是一个Lucence的Index,并且每个Lucene Index由多个Segment组成,每个Segment事实上…...

【C语言蓝桥杯每日一题】——等差数列

【C语言蓝桥杯每日一题】——等差数列😎前言🙌等差数列🙌解题思路分析:😍解题源代码分享:😍总结撒花💞😎博客昵称:博客小梦 😊最喜欢的座右铭&…...

EM7电磁铁的技术参数

电磁铁可以通过更换电磁铁极头在一定范围内改善磁场的大小和磁场的均匀度 ,并且可以通过调整极头间距改变磁场的大小。主要用于磁滞现象研究、磁化系数测量、霍尔效应研究、磁光实验、磁场退火、核磁共振、电子顺磁共振、生物学研究、磁性测量、磁性材料取向、磁性产…...

选择很重要,骑友,怎么挑选骑行装备?

骑行装备的重要性,已经不用多说了,大家也都知道。但是如何挑选,如何选择适合自己的骑行装备呢?今天我来和大家聊一聊这个问题。首先我们需要了解一个概念:骑行装备分为两大类:骑行服和骑行鞋。对于公路车来…...

【JUC面试题】Java并发编程面试题

Java并发编程 基础知识 1. 为什么要使用并发编程? 提升多核系统的CPU利用率一般来说一台主机上的会有多个CPU核心,我们可以创建多个线程,理论 上讲操作系统可以将多个线程分配给不同的CPU去执行,每个CPU执行一个线程&#xff0c…...

spark笔记

spark笔记 1. 概述 Spark是一种基于内存的快速、通用、可扩展的大数据分析计算引擎;Spark提供内存计算,将计算结果直接放在内存中,减少了迭代计算的IO开销,有更高效的运算效率。 1.1 Spark核心模块 Spark Core:提供S…...

丢失了packet.dll原因和解决方法全面指南

packet.dll是Windows操作系统中的一个重要文件,它主要用于网络通信,如果丢失了这个文件,可能会导致网络连接问题。本文将探讨packet.dll文件丢失的原因,并提供相应的解决方法。 一、丢失packet.dll文件的原因 1. 病毒感染&#x…...

算法练习随记(三)

1.全排列 给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。 示例 1: 输入:nums [1,2,3] 输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]示例 2: 输入&#x…...

基于Python 进行卫星图像多种指数分析

一、前言本文帮助读者更好地了解卫星数据以及使用 Python 探索和分析哨兵2卫星数号数据在Sundarbans地区的不同方法。二、Sundarbans研究区孙德尔本斯(Sundarbans)是恒河、雅鲁藏布江和梅克纳河在孟加拉湾汇合形成的三角洲中最大的红树林区之一。 孙德尔…...

(Week 15)综合复习(C++,字符串,数学)

文章目录T1 [Daimayuan]删删(C,字符串)输入格式输出格式样例输入样例输出数据规模解题思路T2 [Daimayuan]快快变大(C,区间DP)输入格式输出格式样例输入样例输出数据规模解题思路T3 [Daimayuan]饿饿 饭饭2&a…...

云计算——弹性云计算器(ECS)

弹性云服务器:ECS 概述 云计算重构了ICT系统,云计算平台厂商推出使得厂家能够主要关注应用管理而非平台管理的云平台,包含如下主要概念。 ECS(Elastic Cloud Server):即弹性云服务器,是云计算…...

【大模型RAG】Docker 一键部署 Milvus 完整攻略

本文概要 Milvus 2.5 Stand-alone 版可通过 Docker 在几分钟内完成安装;只需暴露 19530(gRPC)与 9091(HTTP/WebUI)两个端口,即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面…...

CentOS下的分布式内存计算Spark环境部署

一、Spark 核心架构与应用场景 1.1 分布式计算引擎的核心优势 Spark 是基于内存的分布式计算框架,相比 MapReduce 具有以下核心优势: 内存计算:数据可常驻内存,迭代计算性能提升 10-100 倍(文档段落:3-79…...

对WWDC 2025 Keynote 内容的预测

借助我们以往对苹果公司发展路径的深入研究经验,以及大语言模型的分析能力,我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际,我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测,聊作存档。等到明…...

解决本地部署 SmolVLM2 大语言模型运行 flash-attn 报错

出现的问题 安装 flash-attn 会一直卡在 build 那一步或者运行报错 解决办法 是因为你安装的 flash-attn 版本没有对应上,所以报错,到 https://github.com/Dao-AILab/flash-attention/releases 下载对应版本,cu、torch、cp 的版本一定要对…...

C++.OpenGL (10/64)基础光照(Basic Lighting)

基础光照(Basic Lighting) 冯氏光照模型(Phong Lighting Model) #mermaid-svg-GLdskXwWINxNGHso {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-GLdskXwWINxNGHso .error-icon{fill:#552222;}#mermaid-svg-GLd…...

HTML前端开发:JavaScript 常用事件详解

作为前端开发的核心,JavaScript 事件是用户与网页交互的基础。以下是常见事件的详细说明和用法示例: 1. onclick - 点击事件 当元素被单击时触发(左键点击) button.onclick function() {alert("按钮被点击了!&…...

Device Mapper 机制

Device Mapper 机制详解 Device Mapper(简称 DM)是 Linux 内核中的一套通用块设备映射框架,为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程,并配以详细的…...

【生成模型】视频生成论文调研

工作清单 上游应用方向:控制、速度、时长、高动态、多主体驱动 类型工作基础模型WAN / WAN-VACE / HunyuanVideo控制条件轨迹控制ATI~镜头控制ReCamMaster~多主体驱动Phantom~音频驱动Let Them Talk: Audio-Driven Multi-Person Conversational Video Generation速…...

脑机新手指南(七):OpenBCI_GUI:从环境搭建到数据可视化(上)

一、OpenBCI_GUI 项目概述 (一)项目背景与目标 OpenBCI 是一个开源的脑电信号采集硬件平台,其配套的 OpenBCI_GUI 则是专为该硬件设计的图形化界面工具。对于研究人员、开发者和学生而言,首次接触 OpenBCI 设备时,往…...