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

第5篇_Python文件操作与异常处理:程序与外界交互的桥梁

第5篇_Python文件操作与异常处理:程序与外界交互的桥梁

前言

在前四篇博客中,我们已经建立了完整的 Python 编程基础:

  • 第1篇:搭建环境,写下第一行代码,理解变量与基础语法
  • 第2篇:掌握 Python 的数据类型与运算符,建立 “数据” 的认知
  • 第3篇:掌握条件语句、循环、函数,建立 “逻辑” 的认知
  • 第4篇:深入面向对象编程,建立 “结构” 的认知

学到这里,你的 Python 代码已经能在内存中自由运转了——变量、函数、类、对象,全都在 RAM 里运行,程序结束就消失。

但真实世界的程序,不能只活在内存里。它需要:

  • 读取配置文件,知道该连接哪个数据库,密码是什么
  • 保存用户数据,下次启动还能继续用,而不是每次都重新输入
  • 读写日志文件,出了问题好追查,谁在什么时候做了什么操作
  • 导入别人写好的模块,站在巨人的肩膀上,不用重复造轮子

这就需要掌握文件操作异常处理——这是 Python 程序与外界交互的两座桥梁。本篇我们就来系统学习这两个主题。

1、文件操作:程序与磁盘的对话

1.1、为什么需要文件操作?

让我们从一个生活场景说起。

想象一下,你正在开发一个学生成绩管理系统。用户输入了 50 名学生的成绩,系统计算出了平均分、最高分、最低调,并生成了报表。用户很满意,关掉了程序。

然后用户第二天再次打开程序——所有数据都不见了。50 名学生的成绩全部丢失,必须重新输入一遍。

这就是内存的问题:程序运行期间,数据存储在**内存(RAM)**中。内存的特点是 “易失性” —— 断电后数据全部消失,程序退出后数据也被操作系统回收。

那么,如何让数据在程序退出后依然存在?答案是:把数据写入磁盘文件

磁盘文件是存储在硬盘、SSD 等持久存储设备上的数据单元。它们不会因为断电或程序退出而消失。只要你不主动删除,文件可以存在几年甚至几十年。

文件操作解决的就是 “数据持久化” 的问题:把内存中的数据写入磁盘(保存),以及从磁盘读取数据到内存(加载)

1.2、理解文件路径:文件在哪里?

在学习文件操作之前,我们需要先理解一个基础概念:文件路径

文件路径就是文件在操作系统中的 “地址”,告诉操作系统去哪里找到这个文件。

Windows 路径示例:C:\Users\admin\Documents\hello.txt

Linux/Mac 路径示例:/home/user/documents/hello.txt

路径分为两种:

  • 绝对路径:从磁盘根目录开始的完整路径,如C:\Users\admin\Documents\hello.txt
  • 相对路径:从当前工作目录开始的路径,如hello.txt(表示当前目录下名为 hello.txt 的文件)

在 Python 中,我们可以使用os.getcwd()获取当前工作目录(即程序运行所在的位置):

importosprint(os.getcwd())# 查看当前工作目录,例如 /home/user/projects

了解当前工作目录,可以帮助我们正确地指定文件路径,避免 “文件找不到” 的错误。

1.3、第一个文件程序:写入

好了,理论够了,让我们写点实际的代码。

# 第一次接触文件操作:把文字写入文件# 新建一个文件,向里面写入内容# 1. 打开文件# open(文件名, 模式) 是 Python 内置的文件打开函数# 第一个参数是文件名(路径),第二个参数是打开模式# 模式 'w' 表示写入模式(write),如果文件不存在会创建,文件存在会清空内容!# encoding='utf-8' 指定字符编码,中文环境下基本都要写这个file=open('hello.txt','w',encoding='utf-8')# 2. 写入内容# write() 方法把字符串写入文件缓冲区,注意:它不会自动加换行符!file.write('Hello, Python!\n')# \n 是 Unix/Linux/Mac 的换行符file.write('这是我的第一个文件程序\n')# 每写一行内容末尾加 \n,换到下一行# 3. 关闭文件# 非常重要!关闭后数据才会真正保存到磁盘# 如果不关闭就退出程序,可能只有部分数据被写入(数据丢失风险)file.close()print('文件写入成功!请查看 hello.txt 文件')

运行这段代码,你会看到当前目录下多了一个hello.txt文件,用记事本或编辑器打开,内容正是我们写入的两行文字。

逐行详细解析:

代码含义
open('hello.txt', 'w', encoding='utf-8')以 “写入模式” 打开文件。'w'表示 write,如果文件不存在,会在当前目录自动创建一个新文件。如果文件已经存在,原有内容会被全部清空,这是'w'模式的一个重要特性。encoding='utf-8'确保中文能正确存储,不写这个参数可能导致中文乱码。
file.write('Hello, Python!\n')把字符串写入文件缓冲区。\n是换行符,表示 “另起一行”。如果不加\n,所有内容会连成一行。
file.close()关闭文件。这是一个必须养成的好习惯。关闭时,操作系统才会把缓冲区里的数据真正写入磁盘。如果忘记关闭,程序异常退出时数据可能丢失。

⚠️高危提醒'w'模式会覆盖已有文件!如果你打开一个已存在的文件并用'w'模式写入,原内容会全部消失。保险的做法是:先用os.path.exists()判断文件是否存在,或者使用'a'追加模式(后面会讲到)。

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

相关文章:

  • 昇科仪器代理库尔特纳米粒度仪深度解析:选型要点与行业应用一文读懂 - 品牌推荐大师
  • VIOLET:基于Barlow Twins与Mixup的非对比句子嵌入方法实践
  • 导师认可的AI论文网站势力榜(2026 最新实测)
  • 配电柜源头厂家靠谱性鉴别:从资质到服务全解析 - 奔跑123
  • 虚幻引擎独立开发者必备:零代码用VaRest插件快速对接第三方服务API
  • 2026普洱本地水质检测测评;水质超标别乱测,直饮异味别忽视,水垢厚重别忽视,污水废水别乱送检,矿泉水质检别糊弄水质检测官方权威排名TOP5(2026年5月水质检测最新深度调研方案) - 防水补漏3
  • Hyper-V也能玩转GPU?Win11专业版搭建直通GPU的Ubuntu虚拟机实战
  • 如何快速掌握智能桌面助手:5个高效自动化技巧
  • 粉末包装机灌装机分装机选购指南:如何选到精准高适配设备 - 速递信息
  • 长春画室客观评测:师资、通过率及配套服务横向对比 - 奔跑123
  • Unity转微信小游戏,从WebGL打包到真机调试的完整避坑指南(附常见报错解决方案)
  • ARM嵌入式追踪技术(ETM/ETE)与GCS扩展详解
  • PDF转Word免费软件网页大盘点:2026保姆级教程,手把手教你免费搞定转换 - 软件小管家
  • 2026年5月长治装修/整装/旧屋改造业主如何选择信誉好的装修服务?五大关键维度与代表服务商解析,认准爱尚家 - 2026年企业资讯
  • 2026年集团资产管理系统推荐,信创版+多终端跨部门协同管理 - 品牌2025
  • ALSys 测试用例管理系统使用指南(Python 版)
  • 基于SBERT与多任务学习的轻量级日志异常检测技术解析
  • 服务器运维必看:如何用PCIe ASPM给数据中心‘降温’,一年省下多少电费?
  • GEO优化系统源码搭建与核心功能开发实战教学 - 兔兔不是荼荼
  • ESP32-S3实时入侵检测:62KB内存实现95%召回率的轻量级AI方案
  • 2026年6月劳力士官方公告:官方服务电话同步使用及门店地址升级公示 - 速递信息
  • 差分隐私下基于训练动态的选择性分类:低成本实现可信AI
  • UE5 PhysicsControl物理动画保姆级教程:从插件开启到蓝图配置,手把手教你让角色动起来
  • 使用taotokencli工具一键配置团队共享的开发环境
  • 2026汕头黄金奢侈品回收实测排名 闲置资产安全变现避坑指南 这5家值得信赖 - 小仙贝贝
  • ChatGPT邮件模板不是万能的——但这份经ISO 27001信息安全部门认证的模板框架例外(仅开放200份白名单)
  • 基于双编码器VAEGAN与XGBoost的信用卡欺诈检测实战
  • pyecharts-assets终极指南:三步搞定本地数据可视化资源部署,让图表加载飞起来!
  • 黄冈黄州本地黄金回收全攻略:2026年5月实时金价行情与市民变现实录 - 润富黄金珠宝行
  • 定制化小程序开发公司哪家好?2026年国内十大靠谱小程序制作设计服务商详解 - 新闻快传