目录
-
- [第一章 魔法卷轴基础:文件读写全解析](#第一章 魔法卷轴基础:文件读写全解析)
-
- [1.1 羊皮卷轴操控术(TXT文件)](#1.1 羊皮卷轴操控术(TXT文件))
- [1.2 结构化封印术(JSON文件)](#1.2 结构化封印术(JSON文件))
- [1.3 数据表格操控术(CSV文件)](#1.3 数据表格操控术(CSV文件))
- [第二章 自动防御结界:with黑魔法揭秘](#第二章 自动防御结界:with黑魔法揭秘)
-
- [2.1 自动结界原理](#2.1 自动结界原理)
- [2.2 自制结界生成器](#2.2 自制结界生成器)
- [第三章 异常防御阵:程序安全铁壁](#第三章 异常防御阵:程序安全铁壁)
-
- [3.1 基本防御机制](#3.1 基本防御机制)
- [3.2 高级防御技巧](#3.2 高级防御技巧)
- [第四章 综合魔导书:配置文件管理器](#第四章 综合魔导书:配置文件管理器)
第一章 魔法卷轴基础:文件读写全解析
1.1 羊皮卷轴操控术(TXT文件)
python
# 基础版抄写魔法
with open('spell_book.txt', 'w', encoding='utf-8') as scroll:
scroll.write("火球术咒文:🔥\n寒冰箭符文:❄️")
# 安全阅读卷轴(自动闭合)
with open('spell_book.txt', 'r') as scroll:
print(scroll.read())
# 可选的读取方式:readline()/readlines()
# 追加秘密配方
with open('spell_book.txt', 'a') as scroll:
scroll.write("\n隐身手札:✨")
1.2 结构化封印术(JSON文件)
python
import json
# 封印魔法配方
formula = {
"药水名称": "智慧药剂",
"材料": ["星尘", "龙鳞"],
"炼制时间": 30
}
# 完美封装技巧
with open('formula.json', 'w') as flask:
json.dump(formula, flask, ensure_ascii=False, indent=2)
# 解封魔法配方
with open('formula.json') as flask:
data = json.load(flask)
print(f"炼制{data['药水名称']}需要{data['材料'][0]}")
1.3 数据表格操控术(CSV文件)
python
import csv
# 创建魔法物品清单
with open('magic_items.csv', 'w', newline='') as table:
writer = csv.writer(table)
writer.writerow(["物品名", "重量", "魔力值"])
writer.writerow(["魔杖", 0.5, 100])
writer.writerow(["法袍", 1.2, 80])
# 进阶字典写法
with open('magic_items.csv', 'r') as table:
reader = csv.DictReader(table)
for row in reader:
print(f"{row['物品名']} 魔力:{row['魔力值']}")
第二章 自动防御结界:with黑魔法揭秘
2.1 自动结界原理
python
# 传统防护法术(可能失效)
f = open('demo.txt', 'w')
try:
f.write("测试文字")
except:
pass
finally:
f.close() # 容易忘记关门!
# 现代结界术(推荐姿势)
with open('demo.txt') as f:
data = f.read()
# 自动触发关闭魔法
2.2 自制结界生成器
python
class MagicGate:
def __init__(self, filename):
self.filename = filename
def __enter__(self):
self.file = open(self.filename, 'a')
return self.file
def __exit__(self, exc_type, exc_val, exc_tb):
if self.file:
self.file.close()
if exc_type:
print(f"⚠️结界检测到异常:{exc_val}")
# 使用实例
with MagicGate('log.txt') as gate:
gate.write("结界运转正常\n")
第三章 异常防御阵:程序安全铁壁
3.1 基本防御机制
python
try:
with open('secret.txt') as f:
print(f.read())
except FileNotFoundError as e:
print(f"🛑警报:文件不存在!错误代码:{e}")
except PermissionError:
print("⛔权限不足,无法解封卷轴")
except Exception as fallback:
print(f"未知异常:{type(fallback)}")
else:
print("✅结界检查通过")
finally:
print("防御阵自检完成")
3.2 高级防御技巧
python
def load_spell(name):
try:
with open(f'{name}.json') as f:
return json.load(f)
except (FileNotFoundError, json.JSONDecodeError) as e:
print(f"法术书损坏!原因:{e}")
return {}
except:
print("发现未知威胁!")
raise # 向上级结界传递
# 实用案例
if __name__ == '__main__':
fire_spell = load_spell('fire_magic')
第四章 综合魔导书:配置文件管理器
python
import json
class ConfigManager:
"""魔法参数守护者"""
def __init__(self, path='config.json'):
self.path = path
self._load_config()
def _load_config(self):
try:
with open(self.path) as f:
self.data = json.load(f)
except FileNotFoundError:
self.data = {}
print("⚙️新建配置文件")
except:
print("⚠️配置读取失败,使用默认值")
self.data = {}
def update_setting(self, key, value):
self.data[key] = value
with open(self.path, 'w') as f:
json.dump(self.data, f, indent=2)
print(f"✨参数更新:{key} → {value}")
# 实战演练
if __name__ == '__main__':
cfg = ConfigManager()
cfg.update_setting('resolution', '1920x1080')
print(f"当前主题:{cfg.data.get('theme', '默认')}")
魔导士的真理之书 📜
文件操作是存储智慧的载体
with结界是资源守护的盾牌
异常处理是程序运行的保险
当三者合而为一时...
你就是数据世界的真正主宰!
🔍 深度思考:
- 为什么在CSV写入时要指定newline=''?
- json与pickle模块有哪些核心区别?
- 如何同时打开多个文件创建连锁结界?
💡 实战训练 :
开发一个实验记录系统:
- 使用CSV记录每日实验数据
- JSON存储实验参数配置
- 自动生成带时间戳的备份文件
- 完整的异常防护体系
python
# 彩蛋功能:自动加密术
import hashlib
def file_fingerprint(filename):
with open(filename, 'rb') as f:
return hashlib.md5(f.read()).hexdigest()
print(f"文件指纹:{file_fingerprint('spell_book.txt')}")