Python新手入门第九篇:文件读写超详细教程(TXT/CSV零基础手把手,适配数据集处理)
前言
前面八篇我们学完了环境搭建、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批量处理文件(重命名、批量删后缀、批量处理数据集),专门适配深度学习数据集预处理,非常实用!
更多推荐
所有评论(0)