刷完这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编程
- 初步
- 绑定参数
- 布局
- 扫雷小游戏
- 绑定事件
其他
- 版本转换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执行一个线程,…...
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…...
未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?
编辑:陈萍萍的公主一点人工一点智能 未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战,在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…...
【Oracle APEX开发小技巧12】
有如下需求: 有一个问题反馈页面,要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据,方便管理员及时处理反馈。 我的方法:直接将逻辑写在SQL中,这样可以直接在页面展示 完整代码: SELECTSF.FE…...
Spring Boot+Neo4j知识图谱实战:3步搭建智能关系网络!
一、引言 在数据驱动的背景下,知识图谱凭借其高效的信息组织能力,正逐步成为各行业应用的关键技术。本文聚焦 Spring Boot与Neo4j图数据库的技术结合,探讨知识图谱开发的实现细节,帮助读者掌握该技术栈在实际项目中的落地方法。 …...
AI书签管理工具开发全记录(十九):嵌入资源处理
1.前言 📝 在上一篇文章中,我们完成了书签的导入导出功能。本篇文章我们研究如何处理嵌入资源,方便后续将资源打包到一个可执行文件中。 2.embed介绍 🎯 Go 1.16 引入了革命性的 embed 包,彻底改变了静态资源管理的…...
推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材)
推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材) 这个项目能干嘛? 使用 gemini 2.0 的 api 和 google 其他的 api 来做衍生处理 简化和优化了文生图和图生图的行为(我的最主要) 并且有一些目标检测和切割(我用不到) 视频和 imagefx 因为没 a…...
CRMEB 中 PHP 短信扩展开发:涵盖一号通、阿里云、腾讯云、创蓝
目前已有一号通短信、阿里云短信、腾讯云短信扩展 扩展入口文件 文件目录 crmeb\services\sms\Sms.php 默认驱动类型为:一号通 namespace crmeb\services\sms;use crmeb\basic\BaseManager; use crmeb\services\AccessTokenServeService; use crmeb\services\sms\…...
【JVM】Java虚拟机(二)——垃圾回收
目录 一、如何判断对象可以回收 (一)引用计数法 (二)可达性分析算法 二、垃圾回收算法 (一)标记清除 (二)标记整理 (三)复制 (四ÿ…...
OD 算法题 B卷【正整数到Excel编号之间的转换】
文章目录 正整数到Excel编号之间的转换 正整数到Excel编号之间的转换 excel的列编号是这样的:a b c … z aa ab ac… az ba bb bc…yz za zb zc …zz aaa aab aac…; 分别代表以下的编号1 2 3 … 26 27 28 29… 52 53 54 55… 676 677 678 679 … 702 703 704 705;…...
云原生周刊:k0s 成为 CNCF 沙箱项目
开源项目推荐 HAMi HAMi(原名 k8s‑vGPU‑scheduler)是一款 CNCF Sandbox 级别的开源 K8s 中间件,通过虚拟化 GPU/NPU 等异构设备并支持内存、计算核心时间片隔离及共享调度,为容器提供统一接口,实现细粒度资源配额…...
数据分析六部曲?
引言 上一章我们说到了数据分析六部曲,何谓六部曲呢? 其实啊,数据分析没那么难,只要掌握了下面这六个步骤,也就是数据分析六部曲,就算你是个啥都不懂的小白,也能慢慢上手做数据分析啦。 第一…...
