01 / 文本文件with open(…, encoding='utf-8')
模式:'r' 读取(默认)、'w' 写入(打开时立即清空)、'a' 追加到末尾。始终写上 encoding='utf-8',读写用同一种编码。
read() 读全部,readline() 读一行,readlines() 得到列表,for line in f 逐行遍历;文件对象记着当前位置,seek(0) 回到开头。write() 不会自动换行,内容先进入缓冲区,close() 或 flush() 后才写入磁盘。用 with 会自动关闭。
02 / CSV用 csv 模块,不要自己 split
打开 CSV 时写 newline=''。csv.writer(f).writerow(列表) 写一行,csv.reader(f) 把每行拆成列表。
DictReader 用第一行作列名,每行是字典;DictWriter 需要 fieldnames,writeheader() 写表头。读出来的数字都是字符串,计算前要 int()。值里有逗号时 csv 会自动加双引号。
03 / JSONdump / load 处理文件,dumps / loads 处理字符串
json.dump(对象, f, ensure_ascii=False, indent=2) 写入,json.load(f) 读回。dict ↔ 对象,list ↔ 数组,True/False/None ↔ true/false/null,元组会变成数组。
JSON 字符串必须用双引号;集合等类型不能直接写入。修改 JSON 文件:读成字典 → 修改 → 整体写回。