Python 3.10.4 标准库使用教程:从基础到进阶全面解析

2025-06-12| 5256 阅读

? Python 3.10.4 标准库使用教程:从基础到进阶全面解析


Python 标准库就像一个百宝囊,里面装着无数好用的工具,能帮咱们解决各种编程问题。哪怕你是刚入门的新手,也能从这些基础模块里找到趁手的 “兵器”,而有经验的开发者更能在进阶模块中发掘出强大的功能。接下来,咱们就一起打开这个百宝囊,看看里面都有啥宝贝。

?️ 基础模块:日常开发的得力助手


1. 文件与目录操作:os 模块和 pathlib 模块


平时写代码,免不了和文件、目录打交道,这时候 os 模块和 pathlib 模块就派上大用场了。
os 模块里有好多操作文件系统的函数,比如获取当前目录可以用 os.getcwd(),创建目录用 os.mkdir('new_dir'),删除文件用 os.remove('file.txt')。不过要注意,删除目录得用 os.rmdir('empty_dir'),而且目录必须是空的才行。
pathlib 模块则是用面向对象的方式来处理路径,在处理复杂路径时特别方便。比如拼接路径可以这样写:

python
from pathlib import Path
base_path = Path('/user/data')
file_path = base_path / 'file.txt'
print(file_path)  # 输出 /user/data/file.txt

判断文件是否存在用 file_path.exists(),获取文件大小用 file_path.stat().st_size,是不是比 os 模块的函数更直观?

2. 数据处理:json 模块和 csv 模块


在处理数据时,json 模块和 csv 模块是常用的工具。
json 模块用于处理 JSON 格式的数据,比如将 Python 对象转换成 JSON 字符串用 json.dumps(),把 JSON 字符串转换成 Python 对象用 json.loads()。举个例子:

python
import json
data = {'name': '张三', 'age': }
json_str = json.dumps(data)
print(json_str)  # 输出 {"name": "张三", "age": 20}
new_data = json.loads(json_str)
print(new_data['name'])  # 输出 张三

csv 模块用于处理 CSV 文件,可以读取和写入 CSV 数据。读取 CSV 文件时,用 csv.reader 逐行读取,写入时用 csv.writer 逐行写入。如果 CSV 文件有表头,还可以用 csv.DictReadercsv.DictWriter,通过字典的方式操作数据,更方便识别每一列的内容。

3. 时间处理:datetime 模块


处理时间相关的问题,datetime 模块必不可少。它可以创建日期和时间对象,进行时间的加减、比较等操作。
创建当前时间用 datetime.datetime.now(),创建指定日期和时间用 datetime.datetime(2023, 10, 1, 12, 30, 0)。计算时间间隔可以用 datetime.timedelta,比如:

python
from datetime import datetime, timedelta
now = datetime.now()
one_hour_later = now + timedelta(hours=)
print(one_hour_later)

还可以将时间对象格式化成字符串,用 strftime 方法,比如 now.strftime('%Y-%m-%d %H:%M:%S') 会输出类似 2023-10-01 12:30:00 的字符串。

? 进阶模块:提升效率的秘密武器


1. 高效数据结构:collections 模块


collections 模块提供了一些比普通列表、字典更高效或更便捷的数据结构。
比如 OrderedDict 是有序字典,在 Python 3.7 之后字典本身已经是有序的,但 OrderedDict 在某些需要严格保持顺序的场景下还是很有用。defaultdict 可以设置默认值,当访问不存在的键时,会自动创建并返回默认值,避免抛出 KeyError

python
from collections import defaultdict
d = defaultdict(list)
d['a'].append()
d['a'].append()
d['b'].append()
print(d['a'])  # 输出 [1, 2]
print(d['c'])  # 输出 [],不会报错

还有 deque 是双端队列,可以在两端快速添加和删除元素,比列表的 appendpop 在两端操作时效率更高。

2. 迭代器工具:itertools 模块


itertools 模块里有很多处理迭代器的工具,能让咱们更高效地处理循环和数据。
比如 itertools.count 可以创建一个无限递增的迭代器,itertools.zip_longest 可以处理长度不同的可迭代对象,填充指定值直到最长的那个结束。还有 itertools.permutations 生成排列,itertools.combinations 生成组合,在需要处理排列组合问题时非常方便。

python
import itertools
numbers = [, , ]
for perm in itertools.permutations(numbers):
    print(perm)  # 输出 (1,2,3), (1,3,2), (2,1,3), (2,3,1), (3,1,2), (3,2,1)
for comb in itertools.combinations(numbers, ):
    print(comb)  # 输出 (1,2), (1,3), (2,3)

3. 并发处理:threading 模块和 multiprocessing 模块


当咱们需要处理并发任务时,threading 模块和 multiprocessing 模块就很重要了。
threading 模块用于创建线程,适合 I/O 密集型任务,比如同时下载多个文件。创建线程很简单,继承 threading.Thread 类,重写 run 方法,然后调用 start 方法启动线程。
multiprocessing 模块用于创建进程,适合 CPU 密集型任务,因为 Python 的线程受 GIL 限制,在 CPU 密集型任务中多进程能更好地利用多核处理器。它的用法和 threading 类似,但要注意进程之间的数据共享需要通过队列、管道等方式。

4. 日志管理:logging 模块


在开发程序时,日志管理很重要,能帮助咱们调试和排查问题。logging 模块可以让咱们方便地记录日志信息。
我们可以设置日志的级别,比如 DEBUGINFOWARNINGERRORCRITICAL,只有级别大于等于设置级别的日志才会被记录。还可以设置日志的格式,包括时间、级别、模块名、消息等。

python
import logging
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
logging.info('这是一条信息日志')
logging.warning('这是一条警告日志')

这样日志就会按照指定的格式输出到控制台,也可以通过配置将日志写入文件。

5. 网络通信:socket 模块和 urllib 模块


在网络编程中,socket 模块用于创建网络套接字,实现底层的网络通信,比如创建 TCP 或 UDP 服务器和客户端。
urllib 模块则用于处理 URL 请求,比如发送 HTTP 请求、获取网页内容。urllib.request 模块可以发送请求,urllib.parse 模块用于解析 URL,urllib.error 模块处理错误。

python
from urllib.request import urlopen
response = urlopen('https://www.example.com')
html = response.read().decode('utf-8')
print(html)

这只是简单的用法,实际中可能需要处理请求头、超时、错误等情况,urllib 模块提供了丰富的功能来满足这些需求。

? 实战案例:用标准库实现一个简单的文件管理工具


咱们来实战一下,用前面学的 os 模块和 pathlib 模块实现一个简单的文件管理工具,能列出指定目录下的所有文件和目录,统计文件大小,还能按类型过滤文件。

1. 列出文件和目录


首先,定义一个函数,接收一个目录路径,遍历该目录下的所有文件和目录:

python
from pathlib import Path
def list_files(dir_path):
    path = Path(dir_path)
    if not path.exists() or not path.is_dir():
        print(f'目录 {dir_path} 不存在或不是一个目录')
        return
    for item in path.iterdir():
        if item.is_file():
            print(f'文件:{item.name},大小:{item.stat().st_size} 字节')
        elif item.is_dir():
            print(f'目录:{item.name}')

2. 按类型过滤文件


再定义一个函数,根据文件扩展名过滤文件:

python
def filter_files_by_type(dir_path, file_type):
    path = Path(dir_path)
    if not path.exists() or not path.is_dir():
        print(f'目录 {dir_path} 不存在或不是一个目录')
        return
    for item in path.glob(f'*.{file_type}'):
        if item.is_file():
            print(f'找到 {file_type} 文件:{item.name},大小:{item.stat().st_size} 字节')

3. 主程序


最后,写一个主程序,让用户输入目录路径和操作选项,比如列出所有文件、按类型过滤文件等:

python
def main():
    dir_path = input('请输入目录路径:')
    while True:
        print('\n请选择操作:')
        print('1. 列出所有文件和目录')
        print('2. 按类型过滤文件')
        print('3. 退出')
        choice = input('输入选项(1-3):')
        if choice == '1':
            list_files(dir_path)
        elif choice == '2':
            file_type = input('请输入文件扩展名(如 txt、py):')
            filter_files_by_type(dir_path, file_type)
        elif choice == '3':
            print('退出程序')
            break
        else:
            print('无效选项,请重新输入')

if __name__ == '__main__':
    main()
python
复制
def main():
dir_path = input('请输入目录路径:')
while True:
print('\n请选择操作:')
print('1. 列出所有文件和目录')
print('2. 按类型过滤文件')
print('3. 退出')
choice = input('输入选项(1-3):')
if choice == '1':
list_files(dir_path)
elif choice == '2':
file_type = input('请输入文件扩展名(如 txt、py):')
filter_files_by_type(dir_path, file_type)
elif choice == '3':
print('退出程序')
break
else:
print('无效选项,请重新输入')

if __name__ == '__main__':
main()


这样,一个简单的文件管理工具就实现了,咱们可以通过这个工具来管理文件,是不是很实用?

? 总结:用好标准库,编程更轻松


Python 3.10.4 的标准库还有很多强大的模块,比如 re 模块用于正则表达式,math 模块用于数学运算,email 模块用于处理电子邮件等等。咱们在开发过程中,遇到问题先想想标准库里有没有对应的工具,这样可以避免重复造轮子,提高开发效率。
从基础的文件操作、数据处理,到进阶的并发处理、网络通信,标准库覆盖了编程的方方面面。只要咱们多学多用,就能熟练掌握这些工具,让编程变得更轻松、更高效。

【该文章由dudu123.com嘟嘟 ai 导航整理,嘟嘟 AI 导航汇集全网优质网址资源和最新优质 AI 工具】

分享到:

相关文章

创作资讯2025-03-02

2025年,公众号运营者如何提升自己的金融专业素养?

现在公众号运营竞争越来越激烈,尤其是金融领域,用户对专业内容的要求越来越高。2025 年,公众号运营者要想在金融领域站稳脚跟,提升自己的金融专业素养是关键。那么,具体该怎么做呢? 搭建系统的金融知识框

第五AI
创作资讯2025-02-05

新手做美食公众号,选探店还是菜谱?两大方向优劣势分析

做美食公众号,第一步就得想清楚方向。探店和菜谱,看似都是美食领域,实际操作起来天差地别。不少新手一开始想两头抓,结果精力分散啥也做不好。今天就掰开揉碎了聊聊,这两个方向到底适合什么样的人,各自的坑和机

第五AI
创作资讯2025-06-02

“搜一搜”分发流量池的红利期!2025年关键词布局与涨粉技巧

🔍 搜一搜流量池的红利期!2025 年关键词布局与涨粉技巧 2025 年微信搜一搜的流量格局正在发生质变。数据显示,搜一搜日活用户突破 8 亿,搜索结果页前三名的点击率高达 60%,而第四名之后的内

第五AI
创作资讯2025-04-17

AI生成内容再创作流程详解 | 从降重到价值提升

拿到 AI 生成的内容,别急着改。先花点时间好好看看,这是再创作的第一步,也是最关键的一步。你得搞清楚这东西到底写了些啥,有哪些地方能用,哪些地方就是个坑。​原始 AI 内容的全面评估 🔍​先看内容

第五AI
推荐2025-08-07

力扣模拟面试防作弊指南:双机位 + 实时代码审查策略揭秘

?双机位布置:打造360°无死角面试环境力扣模拟面试的双机位要求让不少同学犯难,其实把它想象成给电脑装个「监控搭档」就简单了。主机位就是咱们平时用的电脑摄像头,记得调整到能露出整张脸和桌面的角度——下巴别藏在阴影里,键盘也别只露出半个。副机位一般用手机支架固定,放在身体侧后方45度角,这个位置既能拍

第五AI
推荐2025-08-07

Examify AI 是一款怎样的考试平台?2025 最新个性化学习计划解析

?精准提分黑科技!ExamifyAI如何重塑2025考试备考模式?一、核心功能大揭秘:AI如何让考试准备更高效?ExamifyAI作为新一代智能考试平台,最吸引人的地方就是它的自适应学习引擎。这个系统就像一个贴心的私人教练,能根据你的答题数据自动调整学习路径。比如你在数学几何题上错误率高,系统会优先

第五AI
推荐2025-08-07

公众号注册的“蝴蝶效应”:一个选择,可能影响未来三年的运营 - 前沿AIGC资讯

你可能觉得公众号注册就是填几个信息的事,殊不知,这里面的每个选择都像蝴蝶扇动翅膀,未来三年的运营轨迹可能就被悄悄改变了。很多人刚开始没当回事,等到后面想调整,才发现处处受限,那叫一个后悔。今天就跟你好好聊聊,注册时那些看似不起眼的选择,到底能给未来的运营带来多大影响。​📌账号类型选不对,三年运营路难

第五AI
推荐2025-08-07

AI写作如何进行事实核查?确保头条文章信息准确,避免误导读者 - AI创作资讯

上周帮同事核查一篇AI写的行业报告,发现里面把2023年的用户增长率写成了2025年的预测数据。更离谱的是,引用的政策文件号都是错的。现在AI生成内容速度快是快,但这种硬伤要是直接发出去,读者信了才真叫坑人。今天就掰开揉碎了说,AI写作怎么做好事实核查,别让你的头条文章变成 误导重灾区 。​📌AI写

第五AI
推荐2025-08-07

10w+阅读量爆文案例拆解分析:高手都从这5个维度入手 - AI创作资讯

🎯维度一:选题像打靶,靶心必须是「用户情绪储蓄罐」做内容的都清楚,10w+爆文的第一步不是写,是选。选题选不对,后面写得再好都是白搭。高手选选题,就像往用户的「情绪储蓄罐」里投硬币,投对了立刻就能听到回响。怎么判断选题有没有击中情绪?看三个指标:是不是高频讨论的「街头话题」?是不是藏在心里没说的「抽

第五AI
推荐2025-08-07

135编辑器会员值得买吗?它的AI模板库和秀米H5比哪个更丰富? - AI创作资讯

📌135编辑器会员值不值得买?AI模板库和秀米H5谁更胜一筹?🔍135编辑器会员的核心价值解析企业级商用保障与效率提升135编辑器的企业会员堪称新媒体运营的「合规保险箱」。根据实际案例,某团队通过企业会员节省了大量设计费用,完成多篇内容创作,单篇成本从千元降至百元内。这得益于其海量正版模板和素材库,

第五AI
推荐2025-08-07

新公众号被限流怎么办?粉丝增长影响分析及 2025 恢复指南 - AI创作资讯

新公众号被限流怎么办?粉丝增长影响分析及2025恢复指南🔍新公众号限流的核心原因解析新公众号被限流,往往是多个因素叠加的结果。根据2025年最新数据,超过70%的限流案例与内容质量直接相关。比如,有些新手喜欢用“震惊体”标题,像“惊!某公众号三天涨粉十万”,这类标题在2025年的算法里已经被明确标记

第五AI
推荐2025-08-07

AI内容重复率太高怎么办?掌握这些技巧轻松通过AIGC检测 - AI创作资讯

⚠️AI内容重复率高的3大核心原因现在用AI写东西的人越来越多,但很多人都会遇到同一个问题——重复率太高。明明是自己用工具生成的内容,一检测却显示和网上某些文章高度相似,这到底是为什么?最主要的原因是AI训练数据的重叠性。不管是ChatGPT还是国内的大模型,训练数据来源其实大同小异,都是爬取的互联

第五AI
推荐2025-08-07

135编辑器让排版更简单 | 专为公众号运营者设计的效率工具 - AI创作资讯

🌟135编辑器:公众号运营者的效率革命做公众号运营的朋友都知道,排版是个费时费力的活。一篇文章从内容到排版,没几个小时根本搞不定。不过现在好了,135编辑器的出现,彻底改变了这一现状。135编辑器是提子科技旗下的在线图文排版工具,2014年上线至今,已经成为国内新媒体运营的主流工具之一。它的功能非常

第五AI
推荐2025-08-07

用对prompt指令词,AI内容的原创度能有多高?实测效果惊人 - 前沿AIGC资讯

现在做内容的人几乎都离不开AI,但最头疼的就是原创度。平台检测一严格,那些模板化的AI文很容易被打回,甚至判定为“非原创”。但你知道吗?同样是用AI写东西,换个prompt指令词,原创度能差出天壤之别。我最近拿不同的prompt测了好几次,结果真的吓一跳——好的指令能让AI内容原创度直接从“及格线”

第五AI