Python 文件与异常处理:从入门到实战

小飞兽 数据库 18 次阅读 2026-07-14

一、文件操作基础

# 读取整个文件
with open("test.txt", "r", encoding="utf-8") as f:
    content = f.read()
    print(content)

逐行读取

with open("test.txt", "r", encoding="utf-8") as f: for line in f: print(line.strip())

二、文件写入

# 写入(覆盖模式)
with open("output.txt", "w", encoding="utf-8") as f:
    f.write("第一行
")

追加模式

with open("output.txt", "a", encoding="utf-8") as f: f.write("追加的内容 ")

三、JSON 数据处理

import json

data = {"name": "小明", "age": 25}
json_str = json.dumps(data, ensure_ascii=False, indent=2)

parsed = json.loads(json_str)
print(parsed["name"])

with open("config.json", "r", encoding="utf-8") as f:
config = json.load(f)

四、异常处理:try-except

try:
result = 10 / 0
except ZeroDivisionError:
print("除数不能为零!")

try:
num = int(input("输入数字:"))
except ValueError:
print("请输入有效数字!")

五、实战:自动化备份文件夹

import os, shutil, json
from datetime import datetime

def backup_folder(src, dest):
os.makedirs(dest, exist_ok=True)
backup_name = f"backup_{datetime.now().strftime("%Y%m%d_%H%M%S")}"
shutil.copytree(src, os.path.join(dest, backup_name))
print(f"备份完成:{backup_name}")

backup_folder("/home/ubuntu/documents", "/home/ubuntu/backups")

六、常见错误

FileNotFoundError:文件路径写错了,或文件不在当前工作目录。

UnicodeEncodeError:中文编码不对。所有 open() 加 encoding="utf-8"。