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

蓝易云 :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。🙂

http://www.jsqmd.com/news/437834/

相关文章:

  • 蓝易云 :香港云主机好不好?应该怎么选择?
  • 蓝易云 :MySQL之优化SELECT语句
  • pcb拼板评测排行 哪家拼板方案最靠谱
  • PCB阶梯厚铜工艺 大电流与精细线路兼顾方案
  • NineData 智能数据管理平台新功能发布|2026 年 1-2 月
  • 2026年靠谱的小型挖掘机厂家推荐:液压挖掘机实力厂家推荐 - 品牌宣传支持者
  • 2026年口碑好的洛阳装修旧房改造公司推荐:洛阳装修旧房改造公司精选 - 品牌宣传支持者
  • CISP-PTE认证全攻略:网络安全渗透测试工程师的黄金通行证
  • 零基础入门渗透测试:白帽黑客成长路径与高薪秘籍
  • Django第一次作业
  • 网络安全领域刚需岗位:渗透测试工程师职业真相与前景
  • 启动springboot项目时报错Web server failed to start. Port 8080 was already in use
  • 收藏!网络安全黄金赛道:渗透测试工程师月薪2.2万+,CISP-PTE认证助你快速入行
  • AI与RPA融合:企业数字化提效的实用路径
  • 网络安全攻防之路:渗透测试技能全面指南
  • RPA+AI融合:打破自动化瓶颈,赋能企业智能化转型
  • RPA+AI技术赋能企业智能化运营,助力降本增效与新质生产力发展
  • RPA与AI融合应用:企业智能自动化升级新路径
  • 金属过滤网编织机哪家好?2026铜网编织机源头厂家+铜网编织机源头工厂专业选型指南 - 栗子测评
  • 2026不锈钢网编织机厂家推荐:精密金属网编织机哪家好实力工厂精选 - 栗子测评
  • 2026年评价高的小型挖掘机品牌推荐:微型挖掘机品牌厂家推荐 - 品牌宣传支持者
  • 基于Java+SSM+Flask图书管理系统(源码+LW+调试文档+讲解等)/图书馆管理系统/图书借阅系统/图书管理软件/图书信息管理系统/图书查询系统/图书进销存系统/图书编目系统/图书收藏软件
  • 2026年比较好的气缸SMC代理商厂家推荐:昆山SMC代理商实力品牌厂家推荐 - 品牌宣传支持者
  • 在 MySQL 中使用 `REPLACE` 函数
  • 数字孪生助力复杂地形下大型公路建设与生态保护难题
  • 2026年临颍县旧房改造服务商综合评测与联系指南 - 2026年企业推荐榜
  • 2026全自动金属网编织机厂家+金属丝网编织机厂家推荐:高速金属网编织机厂家,智能高效优选 - 栗子测评
  • 2026年质量好的正式SICK代理商工厂推荐:一级SICK代理商厂家口碑推荐 - 品牌宣传支持者
  • Python 高级实战数据到 AI,量化交易与智能应用
  • 2026年口碑好的SICK代理商品牌推荐:SICK代理商销售厂家推荐 - 品牌宣传支持者