Python康复训练——常用标准库
装好 Python 就自带一套官方工具箱。这篇把最常用的几个标准库过一遍并把它串成 4 个能直接用的小工具。代码都来自实战片段路径注释标了出处照着敲就能跑。一、为什么要有标准库Python装完就自带一大堆功能模块叫标准库Standard Library。一个模块就是一个.py文件里面是一组相关函数/类把代码按逻辑拆开复用性和可维护性都上来了。它的三个硬优势零安装import即用不用pip部署到哪台机器都不会缺依赖。跨平台同一套os.path.join()在 Windows 和 Linux 上都能正确拼路径不用自己处理反斜杠。经过毒打标准库是千万项目磨出来的稳定性远超你自己手搓的轮子。判断原则能用标准库干净解决的先别急着引第三方库。除非像urllib标准库明显比requests第三方啰嗦这种明确场景。二、sys和解释器本身对话WHY当你想读命令行参数、强制退出程序、临时改模块搜索路径、或重定向标准流时找sys。它是你和 Python 解释器之间的后门。核心成员sys.argv命令行参数列表argv[0]是脚本名后面才是真正传进来的参数。sys.exit()主动退出程序可在参数里带退出信息。sys.path模块搜索路径列表往里append一个路径就能 import 到那里的模块。sys.stdin/sys.stdout/sys.stderr三个标准流错误信息走stderr才专业。# ch05-lib/Test01_sys.pyimportsys# 获取命令行参数iflen(sys.argv)1:print(f脚本名:{sys.argv[0]})print(f第一个参数:{sys.argv[1]})else:print(请提供命令行参数)# 添加模块路径sys.path.append(/path/to/my/modules)# 模块搜索路径print(sys.path)# 输出到标准错误sys.stderr.write(这是一个错误信息\n)# 退出程序# sys.exit(程序退出)命令行跑python Test01_sys.py a b c会依次打印脚本名、a以及拼接后的搜索路径。注意argv永远从脚本身开始取用户输入要从argv[1]起。三、os跨平台操作文件系统WHY文件/目录的增删查改、路径拼接、环境变量读取——凡是跟操作系统打交道的事别手写字符串路径交给os它在不同系统上自动适配分隔符。常用方法os.getcwd()/os.chdir(path)获取 / 切换当前工作目录。os.listdir(path)列出目录下所有条目。os.makedirs(path, exist_okTrue)递归建多层目录exist_ok防止重复建报错。os.path.join()跨平台路径拼接永远用它别手拼/或\。os.path.exists(path)判存在。os.environ环境变量字典。# ch05-lib/Test02_os.pyimportosprint(当前目录:,os.getcwd())# 创建目录exist_okTrue 避免重复运行报错os.makedirs(test_dir/sub_dir,exist_okTrue)# 列出当前目录文件filesos.listdir(.)print(文件列表:,files)# 路径拼接Windows/Linux 通吃file_pathos.path.join(test_dir,sub_dir,test.txt)print(完整路径:,file_path)# 检查文件是否存在再写入ifnotos.path.exists(file_path):withopen(file_path,w)asf:f.write(Hello, OS!)else:print(文件已存在)# 读取环境变量print(PATH:,os.environ.get(PATH))四、urllib标准库自带的 HTTP 客户端WHY不发网络请求也能跑的最小依赖。urllib能完成 GET/POST、URL 解析不引第三方包就能联网。真实项目里很多人换requests更简洁但懂urllib才看得懂那些老代码和报错。子模块分工urllib.request打开并读取 URL发请求。urllib.parse拼接 / 解析 URL 参数。urllib.error请求异常类。# ch05-lib/Test03_urllib.pyimporturllib.requestimporturllib.parse# 发送 GET 请求urlhttps://httpbin.org/getresponseurllib.request.urlopen(url)dataresponse.read().decode(utf-8)print(data)print(-*80)# 发送 POST 请求表单编码后用 Request 包装dataurllib.parse.urlencode({key:value}).encode(utf-8)requrllib.request.Request(https://httpbin.org/post,datadata)responseurllib.request.urlopen(req)print(response.read().decode(utf-8))print(-*80)# 解析 URLparsedurllib.parse.urlparse(https://example.com:8080/path?query1)print(parsed.scheme,parsed.netloc,parsed.path)小结urllib写起来比requests啰嗦GET 都要urlopenreaddecode三连但它零依赖。日常开发用requests更爽面试/读旧代码时urllib跑不掉。五、json程序与世界交换数据的通用语WHY配置文件、API 响应、前后端通信——JSON是工业标准。json模块负责在 Python 对象dict/list和 JSON 字符串之间互转。四个主力方法json.dumps(obj)Python 对象 → JSON 字符串。json.loads(s)JSON 字符串 → Python 对象。json.dump(obj, file)直接写进文件。json.load(file)从文件读并解析。# ch05-lib/Test04_json.pyimportjson# Python 对象转 JSON 字符串data{name:Alice,age:30,is_student:False}json_strjson.dumps(data,indent2,ensure_asciiFalse)print(json_str)# JSON 字符串转回 Python 对象data_backjson.loads(json_str)print(data_back)# 写入文件withopen(data.json,w,encodingutf-8)asf:json.dump(data,f,indent2,ensure_asciiFalse)# 从文件读取withopen(data.json,r,encodingutf-8)asf:loaded_datajson.load(f)print(loaded_data)JSON ↔ Python 类型对照表JSONPythonobjectdictarrayliststringstrnumber(int)intnumber(real)floattrueTruefalseFalsenullNone两个坑先记着dumps默认ensure_asciiTrue中文会被转成\uXXXX要中文正常显示必须传ensure_asciiFalsedump/load针对文件对象dumps/loads针对字符串别混。六、time 与 datetime两个时间模块怎么选WHY时间处理有两套工具分工明确——time底层、轻量基于Unix 时间戳1970-01-01 起的秒数。适合简单计时、sleep、时间戳获取。datetime面向对象封装了日期、时间、时间间隔。适合做日期加减、格式化输出、解析时间字符串。# ch05-lib/Test05_time.pyimporttimeprint(时间戳:,time.time())# 当前秒级时间戳nowtime.localtime()formattedtime.strftime(%Y-%m-%d %H:%M:%S,now)# 格式化为可读字符串print(格式化时间:,formatted)ttime.strptime(2021-04-03 10:00:00,%Y-%m-%d %H:%M:%S)# 解析回去print(解析后时间结构:,t)print(time.strftime(%H:%M:%S,time.localtime()))print(暂停 2 秒...)time.sleep(2)# 阻塞当前线程print(time.strftime(%H:%M:%S,time.localtime()))# ch05-lib/Test06_datetime.pyfromdatetimeimportdatetime,date,time,timedelta nowdatetime.now()print(现在:,now)dtdatetime(2021,4,3,15,30,0)print(指定时间:,dt)tomorrownowtimedelta(days1)# 日期加减靠 timedeltaprint(明天:,tomorrow)print(格式化:,now.strftime(%Y年%m月%d日 %H:%M:%S))parsed_dtdatetime.strptime(2021-04-03 15:40:00,%Y-%m-%d %H:%M:%S)print(解析时间:,parsed_dt)print(今天:,date.today())选择口诀要算差了几天/几小时用datetime.timedelta要打时间戳、计个时、睡两秒用time。七、argparse把命令行参数管起来WHY手动解析sys.argv容易漏边界、难校验类型。argparse自动生成--help、做类型转换、标记必填项专业命令行工具都靠它。# ch05-lib/Test07_argparse.pyimportargparse parserargparse.ArgumentParser(description一个示例程序)parser.add_argument(--name,typestr,requiredTrue,help你的名字)parser.add_argument(--age,typeint,default18,help年龄)parser.add_argument(--verbose,actionstore_true,help详细模式)parser.add_argument(filename,help文件名)# 位置参数无 -- 前缀argsparser.parse_args()print(f名字:{args.name})print(f年龄:{args.age})print(f文件名:{args.filename})ifargs.verbose:print(详细模式已开启)命令行python Test07_argparse.py info.txt --name lao8 --age 18 --verbose。注意filename是位置参数直接跟在后面--name/--age是可选参数--verbose是开关store_true出现即为 True。缺了requiredTrue的--nameargparse会直接报错退出并打印用法。小结标准库是 Python 自带的生产力工具箱——sys管解释器、os管文件系统、urllib管网络、json管数据交换、time/datetime管时间、argparse管命令行。记住三条路径永远用os.path.joinJSON 中文必带ensure_asciiFalse命令行参数优先用argparse而非手撕sys.argv。把这套用熟80% 的脚本类需求都能在标准库里解决不用急着装包。

相关新闻

MD编辑器文字转语音:技术文档智能朗读方案实现

MD编辑器文字转语音:技术文档智能朗读方案实现

作为一名技术开发者,你有没有遇到过这样的场景:深夜调试代码时眼睛酸痛,却还要逐字检查技术文档;通勤路上想学习新框架,但盯着手机屏幕实在不方便;或者团队协作时,希望技术文档能有更生动的呈现…

2026/8/1 8:53:19 阅读更多 →
使用Cheat Engine修改《Eternium》游戏数据的原理与实践

使用Cheat Engine修改《Eternium》游戏数据的原理与实践

1. 项目概述与核心价值如果你玩过《Eternium》(永恒之金)这款手游,大概率会对后期刷装备、攒金币、升技能的漫长过程感到一丝疲惫。作为一款经典的ARPG,它的核心乐趣在于Build构筑和装备获取,但重复的“刷刷刷”有时也…

2026/8/1 8:52:19 阅读更多 →
BepInEx IL2CPP崩溃解决方案:稳定Unity插件框架的技术实践

BepInEx IL2CPP崩溃解决方案:稳定Unity插件框架的技术实践

BepInEx IL2CPP崩溃解决方案:稳定Unity插件框架的技术实践 【免费下载链接】BepInEx Unity / XNA game patcher and plugin framework 项目地址: https://gitcode.com/GitHub_Trending/be/BepInEx BepInEx作为Unity游戏最流行的插件框架之一,在6.…

2026/8/1 8:52:19 阅读更多 →

最新新闻

并发编程正在被AI静默替代:GPT-4o已能自动生成无竞态Go代码(附12个生产级prompt工程清单)

并发编程正在被AI静默替代:GPT-4o已能自动生成无竞态Go代码(附12个生产级prompt工程清单)

更多请点击: https://intelliparadigm.com 第一章:并发编程正在被AI静默替代:GPT-4o已能自动生成无竞态Go代码(附12个生产级prompt工程清单) 过去需数日调试的 goroutine 与 channel 协作逻辑,如今在 GPT-…

2026/8/2 0:47:06 阅读更多 →
斥资建造全景分割养猪场,AI 养猪,到底靠不靠谱?

斥资建造全景分割养猪场,AI 养猪,到底靠不靠谱?

斥资建造全景分割养猪场,AI 养猪,到底靠不靠谱?前几日分享出一个AI案例, 此案例是用5行代码来实现图像分割, 最近又读到一篇论文, 这篇论文是由德国基尔大学和哥廷根大学所研究的, 其内容是应用于养猪场的全景分割系统, 那就让我们一道来品味…

2026/8/2 0:47:06 阅读更多 →
100天Python进阶:Tesseract-OCR图片文字识别全攻略

100天Python进阶:Tesseract-OCR图片文字识别全攻略

100天精通(进阶篇的这部分内容), 到了第44天, 这里讲的是基于 -OCR 来实现 OCR 图片文字识别实战的引言。对数字化时代而言, OCR技术, 也就是被称作光学字符识别的技术, 变成了信息提取以及加以处理的关键工具。不管是文档电子化, 还是自动化表单处理, 亦…

2026/8/2 0:46:06 阅读更多 →
Jetson Nano Developer Kit Package D:嵌入式AI开发套件配置解析与实战指南

Jetson Nano Developer Kit Package D:嵌入式AI开发套件配置解析与实战指南

1. 项目缘起:为什么是Jetson Nano Developer Kit Package D?如果你和我一样,是个对嵌入式AI、机器人或者边缘计算感兴趣的开发者,那么在选择硬件平台时,NVIDIA的Jetson系列绝对是一个绕不开的名字。而在整个Jetson家族…

2026/8/2 0:45:05 阅读更多 →
树莓派10.1英寸DSI LCD屏幕选型、连接与驱动配置全攻略

树莓派10.1英寸DSI LCD屏幕选型、连接与驱动配置全攻略

1. 项目缘起:为什么选择10.1英寸DSI LCD?最近在折腾一个树莓派的小项目,想给它配一块显示效果不错、接口简单、驱动方便的中尺寸屏幕。市面上选择很多,从老旧的HDMI屏到各种SPI、DPI接口的屏幕,看得人眼花缭乱。最后&a…

2026/8/2 0:45:05 阅读更多 →
工业级数据采集模块DDSM400:从硬件架构到Modbus TCP集成的实战指南

工业级数据采集模块DDSM400:从硬件架构到Modbus TCP集成的实战指南

1. 项目概述:DDSM400,一个被低估的工业级数据采集利器如果你在工业自动化、设备监控或者实验室数据记录领域摸爬滚打过一阵子,大概率会对各种数据采集模块(DAQ)有所耳闻。今天要聊的DDSM400,就是一款在特定…

2026/8/2 0:45:05 阅读更多 →

日新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/2 0:00:38 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/2 0:00:38 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/2 0:00:38 阅读更多 →

周新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/2 0:00:38 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/2 0:00:38 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/2 0:00:38 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/1 0:00:48 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/1 0:00:48 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/2 0:23:22 阅读更多 →