当前位置: 首页 > ai >正文

【Python 高频 API 速学 ⑥】

一、为什么叫「2 保险」?

• 第一重:with open → 自动关门,永不漏文件句柄。
• 第二重:pathlib → Windows、macOS、Linux 路径写法统一,API 面向对象。
两者加起来,90 % 的文件操作不用再写 try-finally 或手动拼斜杠。


二、两保险一览

保险核心语法默认模式额外杀器
with open()上下文管理器‘r’ 文本读encoding, newline, buffering
pathlib.Path面向对象路径/ 运算符拼路径,glob, read_text, write_text

三、一行代码场景秀

  1. 一次性读整个文件(小文件)
from pathlib import Path
content = Path('poem.txt').read_text(encoding='utf-8')
  1. 一次性写文件并自动创建目录
out = Path('output/report.csv')
out.parent.mkdir(parents=True, exist_ok=True)
out.write_text('name,score\n')
  1. 大文件流式处理
from pathlib import Path
with Path('big.log').open() as f:for line in f:if 'ERROR' in line:print(line.rstrip())
  1. 批量改后缀
for p in Path('photos').glob('*.jpeg'):p.rename(p.with_suffix('.jpg'))
  1. 拼接跨平台路径
root = Path.home() / 'Documents' / 'project'
config = root / 'config.yaml'
  1. 统计代码行数(含子目录)
print(sum(1for p in Path('src').rglob('*.py')for _ in p.open(encoding='utf-8')))

四、mini 实战:5 行生成「当日备份」脚本

需求:把 ./data 文件夹打包成 zip,文件名带时间戳。

from pathlib import Path
from datetime import datetime
import zipfiletoday = datetime.now().strftime('%Y%m%d')
backup = Path(f'backup_{today}.zip')
with zipfile.ZipFile(backup, 'w') as zf:for file in Path('data').rglob('*'):zf.write(file, arcname=file.relative_to('data'))
print('Backup →', backup.resolve())

核心动作:
Path.rglob('*') 递归遍历
with zipfile... 自动关闭文件句柄
resolve() 给出绝对路径,方便日志记录


五、记忆口令

“open 配 with,文件永不漏; 斜杠用 /,Path 跨平台。”

http://www.xdnf.cn/news/17364.html

相关文章:

  • CrystalDiskInfo 9.0.1 安装教程 - 硬盘检测工具下载安装步骤详解
  • 基于迁移学习的伺服电机轴承故障诊断
  • Python变量引用拷贝
  • 求和算法的向后稳定性 backward stable
  • 大模型“涌现”背后的暗线——规模、数据、目标函数的三重协奏
  • Spring 的原理探究
  • 服务器硬件电路设计之I2C问答(二):I2C总线的传输速率与上拉电阻有什么关系?
  • vs2022编译Activemq
  • 创建一个django项目
  • 【js】判断异步函数的返回值要加await
  • 大语言模型提示工程与应用:大语言模型对抗性提示安全防御指南
  • springboot 2.4跨域变化和swagger结合的问题
  • orcad的操作(1)
  • BGP笔记
  • 微积分 | 外微分
  • vue+flask山西非遗文化遗产图谱可视化系统
  • 通过 SCP 和 LXD 配置迁移 CUDA 环境至共享(笔记)
  • AI编程工具 | Trae介绍
  • 智能的本质
  • 实数与复数及欧拉公式关系
  • 卷板矫平机:金属板材的“脊椎按摩师”
  • 代理人工智能的隐藏威胁
  • 数学学习 | 高数、线代、概率论及数理统计荐书
  • 人脸情绪检测数据集-9,400 张图片 智能客服系统 在线教育平台 心理健康监测 人机交互优化 市场研究与广告 安全监控系统
  • ADB(Android Debug Bridge)—— Android调试桥
  • day22|学习前端ts语言
  • 资深全栈工程师面试题总结
  • DAY35打卡
  • 吴恩达机器学习笔记(4)—多变量线性回归:梯度下降(附代码)
  • C#异步编程双利器:异步Lambda与BackgroundWorker实战解析