Python批量修改txt文件的某列数值,在针对使用YOLOv5目标检测算法过程中,会面临更改标注文件(.txt文件)标签的情况,以将txt文件中第一列为0的数改为1为例,则可使用如下代码进行修改:
![](https://i-blog.csdnimg.cn/blog_migrate/4f04f5a3299e1642a2fa3cdf0767e947.png)
路径结构
import codecs
import os
path='F:/exp/labels/train/' #标签文件train路径
m=os.listdir(path)
#读取路径下的txt文件
for n in range(0,len(m)):
t = codecs.open('F:/exp/labels/train/' +m[n], mode='r', encoding='utf-8')
line = t.readline() # 以行的形式进行读取文件
list1 = []
while line:
a = line.split()
list1.append(a)
line = t.readline()
t.close()
lt = open('F:/exp/labels/train/'+ m[n], "w")
for num in range(0, len(list1)):
if list1[num][0]==str(0): #判断将txt文件中第一列是否为0
list1[num][0] =str(1) #第一列为0时,将0改为1
lt.writelines(' '.join(list1[num]) + '\n') # 每个元素以空格间隔,一行元素写完并换行
lt.close()
print(m[n] + " 修改完成")
![](https://i-blog.csdnimg.cn/blog_migrate/c9257b20829f5951623f31ededf36f1b.jpeg)
修改前后
简单做的一个小笔记,本人小白,如有不足,请多多指教!