跳转至

七、文件与异常:存档与防摔

第 35~38 课

学到这块,Python 才算真正能「干活」——之前所有东西都活在内存里,程序一关就没了。文件读写让数据落到纸面上

第 35 课 读写文本文件

三步走:打开 → 读写 → 关闭

# 写(w = write)
f = open("账单.txt", "w")
f.write("张三 4500\n")
f.write("李四 5200\n")
f.close()

# 读(r = read)
f = open("账单.txt", "r")
print(f.read())
f.close()

两个坑:

  1. write() 不会自动换行,两行之间要自己加 \n
  2. 用完要 close(),否则数据可能没真正写进去

(顺带一个冷知识:f.write(...)返回写入的字符数。在交互模式里你会看到它「冒」出 912 这样的数字——那不是报错,是它在跟你报账「这次写了几个字」。)

第 36 课 读写 CSV:表格的起点

CSV(逗号分隔值)是最通用的表格格式,Excel 能直接打开:

租户,房号,月租
张三,101,4500
李四,102,5200

用 Python 自带的 csv 工具箱来读,先把工具箱 import 进来:

import csv

f = open("租金.csv", "r", encoding="utf-8")
reader = csv.reader(f)
for row in reader:
    print(row)
f.close()

csv.reader 会把每行自动拆成列表:

['租户', '房号', '月租']
['张三', '101', '4500']
['李四', '102', '5200']

这是整个学习里最实用的一课——真实表格导出成 CSV,Python 就能一行行处理了。

第 37 课 异常处理:出错别崩

读一个不存在的文件,程序会直接崩溃退出。try/except 给它穿一层防摔垫:

try:
    f = open("不存在的文件.txt", "r")
    print(f.read())
except:
    print("文件不存在,请检查")
  • try: —— 「试着做下面这些」
  • except: —— 「万一出错了,就做这些」

结果是程序不崩溃,而是给一句友好提示。真实场景里文件名打错、文件被删太常见了,这层兜底很值。

第 38 课 with:自动关闭

每次 open 都要记得 close,一忙就忘。with 让 Python 自动帮你关:

with open("账单.txt", "r") as f:
    print(f.read())
# 缩进块结束,文件自动关闭

退出缩进块 = 文件自动关闭,不用写 close()。像「自动归还」——用完它自动帮你关上。

以后读写文件,优先用 with,这是 Python 界的标准好习惯。

这一块的心得

文件 + 异常 + CSV 三样凑齐,就能写真正处理数据文件的小工具了:读进来 → 清洗 → 筛选 → 算汇总 → 写出去。这正是我一开始学 Python 想要的东西。