当前位置:首页>python>大模型开发入门第七讲:Python 文件操作

大模型开发入门第七讲:Python 文件操作

  • 2026-09-04 14:54:47
大模型开发入门第七讲:Python 文件操作
上一章我们学习了函数与递归、匿名函数,实现了代码逻辑的封装复用;本章我们学习 Python 文件操作 —— 这是大模型开发的必备技能!读取训练语料、保存模型配置、记录训练日志、备份模型权重,全都依赖文件操作。

本章内容完整重制,贴合大模型实战场景,包含文本 / 二进制读写、自动关闭文件、目录管理、大文件处理等核心知识点

一、为什么大模型开发必须学文件操作?

在模型训练中:

  • 1、读取 .txt/.csv 训练数据集
  • 2、保存模型超参数、训练日志
  • 3、读写模型权重文件(二进制格式)
  • 4、批量管理数据集文件夹
  • 文件操作是连接内存数据和硬盘存储的唯一桥梁。

二、文件基础概念

1. 文件分类

  1. 文本文件:.txt/.json/.csv,可读,存储语料、配置、日志
  2. 二进制文件:.bin/.pth(模型权重)、图片、压缩包,必须用二进制模式读写

2. 文件路径

  • 相对路径:./train.txt(当前目录)、../data/(上级目录),项目移植首选
  • 绝对路径:D:/llm/data/train.txt(完整路径)

三、文件操作核心:打开 → 读写 → 关闭

✅ 最佳实践:with 语句(自动关闭文件,推荐!)

手动 open/close 容易忘记关闭文件导致数据丢失,with 是 Python 文件操作标准写法。

常用打开模式:

模式
含义
适用场景
r
只读(默认)
读取训练数据
w
覆盖写入
新建日志 / 配置
a
追加写入
逐轮记录训练日志
rb
二进制只读
读取模型权重
wb
二进制写入
保存模型文件
四、文本文件读写
1. 读取文本文件(训练语料 / 配置)
# with 自动关闭文件with open("./train_data.txt", "r", encoding="utf-8") as f:    # 1. 读取全部内容    content = f.read()    print("全部内容:\n", content)    # 2. 逐行读取(适合大文件)    # f.readline()    # 3. 读取所有行,返回列表    # lines = f.readlines()
2. 写入文本文件(日志 / 配置)
# 覆盖写入(w 模式)with open("model_config.txt", "w", encoding="utf-8") as f:    f.write("模型名称:LLM_Base\n")    f.write("学习率:0.001\n")# 追加写入(a 模式,训练日志专用)with open("model_config.txt", "a", encoding="utf-8") as f:    f.write("第1轮损失值:0.32\n")
五、二进制文件读写
大模型的权重文件、数据集压缩包都是二进制格式,必须使用 rb/wb 模式。
# 读取模型权重文件with open("llm_model.pth", "rb") as f:    data = f.read()# 保存模型权重with open("llm_model_new.pth", "wb") as f:    f.write(data)
六、os 模块:文件 / 目录批量管理
处理批量数据集、创建文件夹,必须用 os 系统模块。
import os# 1. 获取当前工作目录print("当前路径:", os.getcwd())# 2. 创建文件夹os.makedirs("./model_log", exist_ok=True)# 3. 查看目录下所有文件file_list = os.listdir("./")print("文件列表:", file_list)# 4. 判断文件是否存在print(os.path.exists("train_data.txt"))# 5. 拼接路径(跨系统兼容)full_path = os.path.join("./data", "train.txt")
七、实战案例:大模型训练日志系统
import osdef save_train_log(epoch, loss, acc, log_path="train_log.txt"):    """    保存训练日志    :param epoch: 训练轮数    :param loss: 损失值    :param acc: 准确率    """    # 自动创建日志文件,追加写入    with open(log_path, "a", encoding="utf-8") as f:        f.write(f"第{epoch}轮 | 损失:{loss:.4f} | 准确率:{acc:.4f}\n")# 模拟训练for i in range(1, 4):    save_train_log(i, 0.32-i*0.05, 0.7+i*0.05)print("日志保存完成!")
八、实战案例:大文件分块拷贝(避免内存溢出)
模型权重 / 数据集文件很大,不能一次性读取,分块读写更安全。
def copy_big_file(source, target, chunk=1024*1024):    """    大文件分块拷贝    :param source: 源文件    :param target: 目标文件    :param chunk: 每次读取大小    """    with open(source, "rb") as f1, open(target, "wb") as f2:        while True:            data = f1.read(chunk)            if not data:                break            f2.write(data)# 拷贝模型权重copy_big_file("llm_model.pth", "model_backup.pth")print("大文件拷贝完成!")

总结:

  1. 核心语法:with open() as f 自动关闭文件,是最优写法
  2. 打开模式:r读、w覆盖写、a追加写、rb/wb二进制读写
  3. 文本文件:存储训练语料、配置、日志
  4. 二进制文件:存储模型权重、压缩数据集
  5. os 模块:批量管理文件夹、文件,适配大模型数据集
  6. 大文件处理:分块读写,防止内存溢出

下一篇预告

本章我们完整掌握了文件读写、with语句、os模块、大文件处理,搞定了大模型的数据存储与读取。下一章我们将学习 第 8 章 面向对象 —— 类和对象,把大模型、数据集、训练器封装成类,让代码更专业、更工程化!

最新文章

随机文章