前言

前面八篇我们学完了环境搭建、pip、虚拟环境、VSCode、基础语法、实战小项目。

到这一篇,我们开始学习真正实用、能对接项目、能处理数据的技能:Python 文件读写

不管是日常办公、自动化脚本、日志保存,还是YOLO数据集标签处理、批量改文件名、保存训练结果,全部离不开文件操作。

本篇零基础手把手教学,最简单、最易懂、直接能用。

一、Python打开文件的固定格式(万能公式)

新手永远记住这一套写法,不会报错、不会乱码、自动关闭文件:


with open("文件名","模式","编码") as f: # 读写代码

核心优势:不用手动关闭文件,运行完自动释放,新手首选。

常用三种模式:

  • "r"只读(read)

  • "w" 写入(清空原内容再写)

  • "a" 追加(在原来内容后面继续写)

编码统一写:encoding="utf-8" 解决中文乱码。

二、写入TXT文件(保存数据、保存日志)

1. 覆盖写入 w


# 新建/覆盖写入文件 with open("test.txt","w",encoding="utf-8") as f: f.write("Hello Python\n") f.write("文件写入成功\n")

特点:每次运行清空之前内容,重新写入。

2. 追加写入 a(最常用)


with open("test.txt","a",encoding="utf-8") as f: f.write("这是追加的新内容\n")

特点:不删除原有数据,持续往下累加,适合记录日志、保存检测结果。

三、读取TXT文件(读取数据集、读取配置)

1. 全部读取 read()


with open("test.txt","r",encoding="utf-8") as f: content = f.read() print(content)

2. 逐行读取 readline()

适合读取标签文件、大批量文本:


with open("test.txt","r",encoding="utf-8") as f: line1 = f.readline() line2 = f.readline() print(line1) print(line2)

3. 循环逐行读取(YOLO数据集常用)


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

strip() 作用:自动去除换行、空格,清洗数据必备。

四、判断文件是否存在(避免报错)

写项目必备,防止文件不存在程序崩溃:


import os if os.path.exists("test.txt"): print("文件存在,可以读取") else: print("文件不存在")

五、新手必会:读写CSV表格数据

CSV 是 YOLO、深度学习、数据分析最常用的表格格式,轻量、通用。

1. 写入CSV数据


import csv data = [ ["姓名","年龄","分数"], ["张三",18,90], ["李四",19,88] ] with open("data.csv","w",encoding="utf-8",newline="") as f: writer = csv.writer(f) writer.writerows(data)

2. 读取CSV数据


import csv with open("data.csv","r",encoding="utf-8") as f: reader = csv.reader(f) for row in reader: print(row)

六、实战小案例:自动保存检测结果

模拟 YOLO 检测场景:识别到目标就自动保存记录


# 模拟检测结果 result = "检测到氢化服,状态:合规" # 追加写入日志 with open("detect_log.txt","a",encoding="utf-8") as f: f.write(result + "\n") print("结果保存成功")

真实项目中,所有检测记录、报错日志、识别结果都是这样保存的。

七、新手最常见3个报错与解决

  • 乱码报错:没写 encoding="utf-8"

  • 文件不存在报错:路径错误,或者没判断文件是否存在

  • 内容被清空:误用 "w" 模式,需要追加请用 "a"

八、总结

第九篇核心收获:

  • 掌握 TXT 读写、追加、遍历读取

  • 掌握 CSV 表格数据读写

  • 学会文件判断、数据保存、日志记录

  • 具备 处理YOLO数据集、批量处理文件 的基础能力

下一篇:第十篇:Python批量处理文件(重命名、批量删后缀、批量处理数据集),专门适配深度学习数据集预处理,非常实用!

更多推荐