南通优普网站建设制作环球军事网最新军事新闻最新消息
南通优普网站建设制作,环球军事网最新军事新闻最新消息,安徽省住房城乡建设厅网站,网站建设推广优化公司#x1f9f0; 说明#xff1a;Python 被称为“自带电池”#xff08;Batteries Included#xff09;#xff0c;其标准库提供了大量无需安装即可使用的模块。本篇精选8 个最常用、最实用的标准库模块#xff0c;助你避免重复造轮子#xff0c;写出更简洁、高效的代码。 …说明Python 被称为“自带电池”Batteries Included其标准库提供了大量无需安装即可使用的模块。本篇精选8 个最常用、最实用的标准库模块助你避免重复造轮子写出更简洁、高效的代码。你将学会如何用标准库轻松实现日期时间处理datetime随机数据生成random路径与文件系统操作pathlib/os数据序列化json命令行参数解析argparse正则表达式re数学运算math环境变量与系统信息os/sys1.datetime日期与时间处理常见任务fromdatetimeimportdatetime,timedelta# 获取当前时间nowdatetime.now()print(now)# 2025-12-11 17:30:45.123456# 格式化输出print(now.strftime(%Y-%m-%d %H:%M))# 2025-12-11 17:30# 解析字符串为时间dtdatetime.strptime(2025-12-25,%Y-%m-%d)# 时间计算next_weeknowtimedelta(days7)print(next_week)✅替代方案复杂时区处理可用第三方库pytz或zoneinfoPython 3.9 内置。2.random生成随机数据常用函数importrandom# 随机整数print(random.randint(1,10))# 1~10含# 随机选择colors[红,绿,蓝]print(random.choice(colors))# 随机选一个# 打乱列表cards[1,2,3,4,5]random.shuffle(cards)print(cards)# 如 [3, 1, 5, 2, 4]# 随机抽样不重复print(random.sample(range(1,50),6))# 彩票号码⚠️ 注意random是伪随机不适用于加密场景用secrets模块。3.pathlib面向对象的路径操作推荐Python 3.4 推荐使用pathlib替代os.path。frompathlibimportPath# 创建路径对象pPath(data)/input.txt# 自动处理斜杠# 检查存在性ifp.exists():print(文件存在)# 读写文件简化contentp.read_text(encodingutf-8)p.write_text(Hello,encodingutf-8)# 遍历目录forfileinPath(logs).glob(*.log):print(file)# 获取父目录、文件名、后缀print(p.parent)# dataprint(p.name)# input.txtprint(p.suffix)# .txt✅优势跨平台、链式调用、代码更清晰。4.json数据序列化与交换JSON 是 Web 和配置文件的通用格式。importjson# Python 对象 → JSON 字符串data{name:Alice,age:30}json_strjson.dumps(data,ensure_asciiFalse,indent2)print(json_str)# JSON 字符串 → Python 对象objjson.loads({score: 95})# 读写文件withopen(config.json,w,encodingutf-8)asf:json.dump(data,f,ensure_asciiFalse,indent2)withopen(config.json,encodingutf-8)asf:configjson.load(f) 提示ensure_asciiFalse支持中文indent2美化输出。5.argparse命令行参数解析让你的脚本能接收命令行输入# save as: greet.pyimportargparse parserargparse.ArgumentParser(description打招呼程序)parser.add_argument(name,help你的名字)parser.add_argument(-a,--age,typeint,default18,help年龄)parser.add_argument(--verbose,actionstore_true,help详细模式)argsparser.parse_args()ifargs.verbose:print(f正在向{args.name}(年龄:{args.age}) 打招呼...)print(f你好,{args.name}!)运行python greet.py 小明 --age25--verbose# 输出# 正在向 小明 (年龄: 25) 打招呼...# 你好, 小明!✅比sys.argv更强大、更用户友好。6.re正则表达式文本处理利器用于复杂文本匹配、提取、替换。importre text联系邮箱adminexample.com 或 supportsite.org# 查找所有邮箱emailsre.findall(r\b[A-Za-z0-9._%-][A-Za-z0-9.-]\.[A-Z|a-z]{2,}\b,text)print(emails)# [adminexample.com, supportsite.org]# 替换敏感信息maskedre.sub(r\d{3}-\d{4}-\d{4},***-****-****,电话138-1234-5678)print(masked)# 电话***-****-****# 编译提高性能多次使用时patternre.compile(r\d)# 匹配数字numberspattern.findall(价格100元数量5件) 正则虽强但不要过度使用——简单任务用str.split()或in更清晰。7.math数学函数importmathprint(math.sqrt(16))# 4.0print(math.pi)# 3.141592653589793print(math.ceil(3.2))# 4向上取整print(math.floor(3.8))# 3向下取整print(math.log(10))# 自然对数 科学计算建议用numpy但小项目math足够。8.os与sys系统交互os操作系统接口importos# 环境变量homeos.getenv(HOME)# Linux/Mac# home os.getenv(USERPROFILE) # Windows# 当前工作目录print(os.getcwd())# 列出目录内容filesos.listdir(.)sysPython 解释器相关importsys# 命令行参数原始print(sys.argv)# [script.py, arg1, arg2]# 退出程序sys.exit(1)# 非零表示错误# Python 版本print(sys.version_info)✅ 现代替代路径用pathlib环境变量用os.getenv()命令行用argparse。标准库使用原则原则说明优先使用标准库避免引入不必要的第三方依赖查文档再编码官方文档docs.python.org/3/library组合使用如pathlibjson读写配置文件注意版本兼容如pathlib需 Python 3.4综合案例日志清理脚本# cleanup_logs.pyfrompathlibimportPathimportargparsefromdatetimeimportdatetime,timedeltadefmain():parserargparse.ArgumentParser()parser.add_argument(log_dir,help日志目录)parser.add_argument(--days,typeint,default30,help保留天数)argsparser.parse_args()log_pathPath(args.log_dir)cutoffdatetime.now()-timedelta(daysargs.days)forlog_fileinlog_path.glob(*.log):iflog_file.stat().st_mtimecutoff.timestamp():print(f删除旧日志:{log_file})log_file.unlink()# 删除文件if__name____main__:main()运行python cleanup_logs.py ./logs --days7✅ 用到了pathlib、argparse、datetime下一步建议探索更多标准库collectionsdefaultdict,Counter,namedtupleitertools高效迭代工具已在第十二篇介绍functoolslru_cache,wraps在项目中替换手写逻辑用json替代手动解析配置用pathlib替代字符串拼接路径阅读官方标准库文档每周学一个新模块“好的程序员知道标准库能做什么。”善用标准库是区分新手与熟手的重要标志继续前行让 Python 的“电池”为你供电