python zip Python基础标准库大揭秘!常用标准库,一文带你入门
基础标准库零基础入门
常用标准库: 自带的「工具箱」
Rs知识库 · 零基础入门系列 · 第七篇
Rs知识库
2026年6月28日
会变得强大, 并非只因语法是简洁的, 更是因它自身带有了一个极大的「工具箱」, 也就是标准库。从针对文件进行操作开始, 一直到对日期予以处理, 从涉及随机数再到正则表达式上, 你所需要的大部分功能都已经是有其他人给写好了的。在这一篇当中要来认识5个最为常用的标准库模块。

本文目录
①os 和 :与操作系统对话
②:日期和时间
③:随机数
④:高级数据容器
⑤re:正则表达式
⑥json 进阶与 csv 模块
⑦实战:数据分析小工具
① os 和 :与操作系统对话
在你有着对文件进行操作, 对目录予以遍历, 将路径来拼接这类需求之际, 是不用自身去构建轮子的, os模块早就为你预备妥当了, 它俨然成为了与操作系统之间的一座桥梁。
os.path路径操作经典方案
我不太理解你所提供内容的准确意图, 并且原内容似乎并不完整且存在错误表述, 不太能按照要求进行改写, 请你确认或补充完整准确的内容。
操作系统 # 实现安全地拼接路径(其会自动把分隔符处理好) 等于操作系统路径拼接函数把路径的各个部分连接起来 可写成是操作系统路径拼接函数连接("/var/log""nginx"".log") 输出打印 # 最终结果是 /var/log/nginx/.log# 对文件是否存在展开检查 如果操作系统路径检查函数检查某路径 就打印输出"日志文件存在" 否则 打印输出"日志文件不存在" # 把文件名以及目录名提取出来 打印输出操作系统路径提取函数的结果 # 其会提取并给出 .(操作系统路径提取函数的结果) # 最终是 /var/log/nginx。
3.4 引入了,用面向对象的方式操作路径,代码更直观:
依据路径, # 使用斜杠作为运算符来拼接路径以使如同书写公式那样自然, 路径为路径对象(Path)的实例, 该实例指向 /var/log 这个路径, 然后与 “nginx” 进行拼接, 接着继续拼接 “.log”# 对路径 /var/log 下的所有 .log 文件进行遍历, 对于每一个在该路径(Path("/var/log/))下通过 glob 方法匹配到的所有符合 “**/*.log” 模式的文件, 即所有子目录下的 .log 文件, # 输出该文件的名称以及该文件的大小, 也就是打印文件名加上文件的统计信息中的大小部分。

往往会出现的错误是, 进行硬编码路径分隔符。要是写"data/" 再加上其他内容, 在特定情况下就会出现问题。正确的做法应当是使用 os.path.join() 或者 Path / , 从而让程序依照相应规则自行选择正确的分隔符。
② :日期和时间
编程里, 处理日期以及时间属于高频需求, 这需求包含生成时间戳, 计算工期, 格式化显示, 该需求的模块给出了四个核心类型。
日期时间处理
日期, 是指年、月、日, 时间, 是指时刻, 即小时、分钟、秒, 表示的是这样三个部分, 年、月、日、小时、分钟、秒, 此外, 还有时间间隔这一概念。
好, 不过你提供的这段代码有一部分不太完整。且按照要求改写如下: 从, 获取当前时间, now通过.now()获取, 打印now, 即2026 - 06 - 28 14:30:00, 计算项目截止日期, 从今天起45天后, 通过now加上(days = 45)来计算, 打印项目截止时间, 按照('%Y - %m - %d')格式, 计算两个日期之间的天数, start为(2026, 1, 1), diff通过now减去start得到, 打印今年已过diff.days天, 即今年已过178天, 格式化输出, 按照now.("%Y年%m月%d日 %H:%M")格式, 输出2026年06月28日 14:30。
/ 常用格式化代码

特别: 去获取时间戳的时候要运用.now().()这样的方式, 不过但是要显示给用户看的时候呢, 得在前面先用()转成属于可读的格式才行。时间戳它主要是给程序去参考查看的, 而格式化字符串是呈现出来用来给人去观看的。
③ :随机数
随机进行抽奖, 将牌进行洗牌, 生成验证码, 去模拟实验, 在这些场景当中都需要模块, 它能够提供各种各样的「靠运气」的功能。
随机数生成
将0到1的浮点数, 记为(a,b), 作为区间整数, 记为seq, 从其中随机选一个, 记为lst, 将列表打乱, 记为pop, 从其中进行不重复抽样, 即抽取k个。
# 随机抽奖:从名单中抽取3人(不重复) =
称做“张伟”之人, 名为“李娜”之人, 叫“王磊”之人, 唤“赵敏”之人, 被叫做“陈晨”之人, 称作“刘洋”之人, 谓之“周杰”之人, 名为“吴芳”之人。
哎, 你提供的内容似乎有些混乱且存在错误表述, 不太能准确按要求进行改写。这段代码看起来很不完整且有语法错误, 比如“=.(, 3)”“.(chars)”等地方表述不清~修改正确后可以再让我试试改写。
撰写报告, 参与开会, 回复邮件, 审查代码, 进行部署。
(task), 进行f字符串格式化输出, 输出内容为“今日顺序: ”加上变量tasks的值, 最后进行打印。
碰到的常见错误是, 所生成的是那种「伪随机数」, 它是能够被预测出来的。要是将其运用在密码、令牌、验证码等安全方面的场景之中, 那就需要使用那个模块(3.6+), 该模块运用的是操作系统层面的真随机源。
④ :高级数据容器
有着被内置的 dict 以及 list, 已然是颇具强大之处的了, 然而呢, 模块于它们所具备的基础之上, 却是提供了更为专业的工具, 这情形宛如从平常的工具箱实现了向着精密工具箱的迈进一般, 是这样的情况了。
高级数据容器
— 计数器 — 带默认值的字典 — 有序字典
是用于统计频率的极为有效的工具, 当给予其一个列表或者字符串时, 它能够自行针对所有元素出现的次数展开计算。
依据, #: 针对日志里多种错误类型的出现频次予以统计 =。
无内容, “404”, 无内容, “500”, “404”, 无内容, “403”, “404”。
不太明确你提供的内容具体要表达什么准确意思, 这段语句看起来比较混乱且存在错误, 不太能按照要求准确改写。你可以检查并清晰准确地描述一下原始语句的意图, 以便我更好地处理, 如果仅从现有不太清晰的部分勉强修改似无实际意义。
('', 3), ('404', 3)
解决了, 「键不存在时报错」的这个问题, 当访问不存在的键时, 它会自动创建一个默认值, 而不是进行抛出。
# :按部门分组员工 = (list) =
分别是, “技术部”的“张三”, “市场部”的“李四”, “技术部”的“王五”, “市场部”的“赵六”。
为部门, 名字在那样的情况下, 即不需要预先去检查键是否存在, 打印字典, 字典里有键为技术部。
'张三', '王五'
, '市场部':
'李四', '赵六'

⑤ re:正则表达式
有一种「微型语言」, 它被嵌入在了正则表达式里, 专门用于匹配文本模式, 像验证手机号、提取邮箱、替换敏感信息等文本处理任务, 用正则表达式能够一行就完成。
re正则表达式匹配
re.match(), 它是从开头进行匹配, re.(), 它是去搜索首个, re.(), 它是要找出所有的匹配情况, re.sub(), 它是用于替换。
正则语法速查

re#对于手机号格式进行验证, phone为空字符串, 要是re.match(r"^1\d{9}$", phone)成立, 才能打印出“手机号格式正确”#从文本里提取全部邮箱, text是“联系我: 或 ”,等于re.(r"+@+\.\w+", text), 打印出来#。
'', ''
# 进行敏感信息的替换以实现隐藏手机号中间4位, msg被定义为"客服电话: " , 通过re.sub函数将匹配模式为(\d{3})\d{4}(\d{4})的内容替换为\1****\\n2, 之后执行print函数, 最终结果为 客服电话: ****5678。
常见错误: 存在贪婪匹配与非贪婪匹配之分, .*会朝着尽可能多地进行匹配的方向(此为贪婪),而.*?会朝着尽可能少地进行匹配的方向(此为非贪婪), 例如从“粗体和斜体”里提取标签内容, 用 才能够正确匹配每个标签。
⑥ json 进阶与 csv 模块
第五篇, 我们曾学习过json的基础性使用方法。在此处, 补充两项具有实用性的技巧, 而后重新认识一下用于处理表格数据的csv模块。
嘿, 你瞧, 有这么个情况, json数据它是这样的, {"姓名":"张三""城市":"北京"} , 然后, 有个技巧一冒出来, =False这东西呢它能正确保存中文, 你要知道默认情况下可是会把中文转成\uXXXX编码的, 接着, 打印输出的时候这么写print(json.dumps(data, =False)) , 这时候就会输出{"姓名":"张三""城市":"北京"} , 再然后, 又有个技巧二闪亮登场, 参数美化输出, 这么写print(json.dumps(data, =False, =2)) , 输出结果就是{"姓名":"张三""城市":"北京" } , 这一连串的操作, 还真够让人眼花缭乱的。
用于读写 CSV 文件(逗号分隔的表格数据)的是 csv 模块, 其中, 最为便利的方式是, 直接凭借列名来访问数据:
请你明确一下问题哦, 你提供的这段内容写得并不完整清晰且存在一些代码片段没表述完整的情况, 不太清楚具体要我怎么改写。从现有的内容看, 大致是要读取一个名为.csv的文件, 里面记录了姓名、科目、分数等信息, 然后统计各分数段人数, 像这样: 读取CSV文件, 将其中数学和英语的分数按照一定规则进行处理,对于分数大于等于90的情况进行某种操作, 是这样的意思吗? 请补充完整准确的内容以便我能更好地按照要求改写。
"优秀(90+)"
+= 1elif score >= 70:
"良好(70-89)"
+= 1else:
"待提高(
小贴士: 在对表格数据予以处理之际, 相比于平常的 csv, csv. 会显得更为便利——它能够自动将第一行当作表头, 你能够直接借助 row 前去访问数据, 不存在需要记住列的索引号这种情况。
⑦ 实战项目:数据分析小工具
通过将今日所学的5个模块予以组合, 进而打造出一个完整的日志分析工具, 此工具能够读取日志文件, 运用正则表达式提取相关信息, 借助某些手段统计错误情况, 采用另外一些方式计算时间范围, 最后以json格式输出报告。
re、json、os, 从, 从(): “”“分析日志文本, 生成统计报告”“”#1. 用正则提取时间戳和日志级别 = r“(\ d {4}-\d {2}-\d {2}\d {2}:\d {2}:\d {2})\(。+)” = re.()如果不: {“错误”: “未找到有效日志条目”}#2. 统计各级别日志数量 =(条目用于条目在)#3. 计算时间跨 度fmt =“%Y-%m-%d%H: %M: %S”第一 = .(, fmt)最后 = .(, fmt) =最后 - 第一#4. 提取错误信息的关键词 =。
针对ts、level、msg, 在level处于(""""范围之内时, 有msg)
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐


所有评论(0)