第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() 获取当前工作目录(即程序运行所在的位置):

python 复制代码
import os
print(os.getcwd())  # 查看当前工作目录,例如 /home/user/projects

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

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

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

python 复制代码
# 第一次接触文件操作:把文字写入文件
# 新建一个文件,向里面写入内容

# 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' 追加模式(后面会讲到)。

相关推荐
ZHW_AI课题组15 小时前
基于PCA与HOG特征融合的热轧钢带缺陷检测
人工智能·python·机器学习
MediaTea15 小时前
DL:扩散模型的基本原理与 PyTorch 实现
人工智能·pytorch·python·深度学习·机器学习
programhelp_15 小时前
Ramp OA 四关全过,CodeSignal OOD 完整复盘
linux·前端·python
Chasing__Dreams15 小时前
大模型应用开发--0--知识点
python
清风一徐15 小时前
Python文件处理
开发语言·python
nbsaas-boot15 小时前
Drools 规则引擎实战:原理、规则语法、数据库动态规则与企业级玩法
java·数据库·python
六月雨滴16 小时前
Oracle RMAN 恢复场景全解
数据库·oracle·dba
weixin_5500831516 小时前
基于Python的豆瓣电影数据爬取与可视化分析
开发语言·python
码界筑梦坊16 小时前
147-基于Python的IT行业招聘数据可视化分析系统
开发语言·python·信息可视化·数据分析·django·毕业设计