news 2026/8/28 16:43:14

蓝易云 :Python基本文件操作及os库

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
蓝易云 :Python基本文件操作及os库

蓝易云:Python 基本文件操作与 os 库(实战向)📁🐍

Python 的文件操作本质是:把磁盘上的“字节流”通过打开(open) → 读写(read/write) → 关闭(close)这条链路安全地跑完。os库则负责和操作系统打交道:路径、目录、权限、环境变量、进程信息等。把这两块掌握,你就能把日志、配置、数据落盘、批处理脚本做得又稳又干净。✅


一、核心对比表:文件模式怎么选(避免踩坑)🧭

场景模式是否创建是否覆盖典型用途
读文本"r"读取配置、读取日志
写文本"w"生成报告、覆盖写入
追加文本"a"追加日志、追加记录
读写"r+"读后再改(不清空)
二进制读"rb"读图片、压缩包
二进制写"wb"写文件、下载落盘

关键点:"w"清空原文件,上线脚本里要格外谨慎。😄


二、最推荐写法:with 上下文(自动关闭文件)✅

with open("app.log", "r", encoding="utf-8") as f: data = f.read() print(data)

解释(逐行拆解)

  • open("app.log", "r", encoding="utf-8"):以只读方式打开文本文件,并声明编码,避免乱码与平台差异。

  • with ... as f:上下文管理器,代码块结束时会自动执行关闭动作,相当于把“忘记 close”这类低级风险直接消掉。

  • f.read():一次性读全文件,适合小文件;大文件建议用逐行读取(见下)。


三、大文件读取:逐行迭代更稳(省内存)📌

with open("big.log", "r", encoding="utf-8") as f: for line in f: line = line.rstrip("\n") # 这里处理每一行

解释

  • for line in f:按行流式读取,不会把整个文件一次性塞进内存,适合日志、CSV 等大文件。

  • rstrip("\n"):去掉行末换行符,便于拼接、比较、解析。


四、写入与追加:明确控制“覆盖/追加”📝

# 覆盖写入(危险但常用) with open("report.txt", "w", encoding="utf-8") as f: f.write("今日统计:OK\n") # 追加写入(日志更常用) with open("report.txt", "a", encoding="utf-8") as f: f.write("追加一行记录\n")

解释

  • "w":没有文件就创建,有文件就清空再写;适合“生成全量报告”。

  • "a":总是写到末尾;适合“不可丢”的流水日志。


五、os 与路径/目录:跨平台的关键是 join 与 exists 🧱

import os base_dir = os.path.dirname(os.path.abspath(__file__)) log_dir = os.path.join(base_dir, "logs") os.makedirs(log_dir, exist_ok=True) log_path = os.path.join(log_dir, "app.log") print(log_path)

解释(逐行拆解)

  • os.path.abspath(__file__):拿到当前脚本的绝对路径,避免“在哪运行就读哪”的漂移问题。

  • os.path.dirname(...):取目录部分,作为工程根定位点。

  • os.path.join(...):按系统规则拼路径(Windows/Linux 分隔符不同,手拼容易出错)。

  • os.makedirs(..., exist_ok=True):递归创建目录;exist_ok=True表示目录已存在也不报错,脚本可重复执行。


六、常见文件/目录操作:移动、删除、重命名(务必先判断)⚙️

import os src = "a.txt" dst = "backup/a.txt" if os.path.exists(src): os.makedirs(os.path.dirname(dst), exist_ok=True) os.replace(src, dst)

解释

  • os.path.exists(src):先确认存在再操作,避免异常导致任务中断。

  • os.path.dirname(dst):拿到目标目录,配合makedirs先建目录。

  • os.replace(src, dst):替换式移动/重命名;目标存在会被覆盖,适合“以新换旧”的交付逻辑。


七、工作流程图:从“拿路径”到“安全落盘”🔁

flowchart TD A[定位基准路径<br/>abspath + dirname] --> B[拼接路径<br/>path.join] B --> C{目录存在?} C -->|否| D[创建目录<br/>makedirs exist_ok] C -->|是| E[直接进入文件操作] D --> E E --> F[with open 读/写/追加] F --> G[异常处理/校验结果]

八、实战落地建议(企业级口径)✅

  • 永远优先用with open,把资源释放做成“默认正确”。

  • 大文件处理默认用逐行,避免内存飙升。

  • 路径拼接只用os.path.join,拒绝手写分隔符。

  • 删除/覆盖类操作前先做exists校验,必要时加“备份副本”,把可恢复性当 KPI。🙂

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/28 16:43:13

网络安全领域刚需岗位:渗透测试工程师职业真相与前景

【必看收藏】网络安全领域刚需岗位&#xff1a;渗透测试工程师职业真相与前景 文章全面介绍渗透测试工程师这一网络安全实战派核心职业&#xff0c;详述其探测验证安全漏洞的工作内容、需求爆发缺口巨大的行业前景、从助理到专家的清晰成长路径、技术导向的专业适配要求、耐心…

作者头像 李华
网站建设 2026/8/21 7:36:32

RPA与AI融合应用:企业智能自动化升级新路径

在人工智能技术持续迭代与企业数字化转型加速的背景下&#xff0c;自动化领域迎来全新发展阶段。AI大模型的普及&#xff0c;不断拓展机器人流程自动化&#xff08;RPA&#xff09;的应用边界与技术能力&#xff0c;推动传统自动化向智能自动化升级。RPA专注于模拟人工操作&…

作者头像 李华
网站建设 2026/8/21 9:04:44

AI与RPA融合:企业数字化提效的实用路径

在企业数字化转型进程中&#xff0c;人工智能&#xff08;AI&#xff09;与机器人流程自动化&#xff08;RPA&#xff09;成为提升运营效率、优化业务流程的重要技术支撑。二者各有技术侧重&#xff0c;协同应用能够覆盖更多业务场景&#xff0c;帮助企业在合规、高效、低成本的…

作者头像 李华
网站建设 2026/8/21 14:03:39

IoT-Fast平台:重塑物联网开发新范式,开启全栈智能化时代

引言&#xff1a;物联网开发的痛点与破局之道在数字化转型浪潮中&#xff0c;物联网&#xff08;IoT&#xff09;已成为企业智能化升级的核心引擎。然而&#xff0c;传统物联网开发面临三大挑战&#xff1a;协议碎片化&#xff1a;设备通信协议多样&#xff08;如Modbus、PLC、…

作者头像 李华
网站建设 2026/8/21 9:34:36

关于Mysql 中 Row size too large (> 8126) 错误的解决和理解

提示&#xff1a;啰嗦一嘴 &#xff0c;数据库的任何操作和验证前&#xff0c;一定要记得先备份&#xff01;&#xff01;&#xff01;不会有错&#xff1b; 文章目录 问题发现一、问题导致的可能原因 1、页大小2、行格式 2.1 compact格式2.2 Redundant格式2.3 Dynamic格式2.4…

作者头像 李华
网站建设 2026/8/21 12:08:22

RAG——从0到1快速搭建RAG应用

目录 一、技术框架与选型 1.1、技术框架与选型 1.1.1、LangChain 1.1.2、索引流程 (文档解析模块:pypdf) 1.1.3、索引流程 (文档分块模块:RecursiveCharacterTextSplitter) 1.1.4、索引 / 检索流程 (向量化模型:bge-small-zh-v1.5) 1.1.5、索引 / 检索流程 (向量库:Faiss) …

作者头像 李华