利用Python对文件夹下的TXT文件批量改名、改内容操作

改名:这里我的操作是把名字里的&全部改为-,因为在转化xml的过程中名字带有&会被认为非法字符,所以要对名字进行改进。

import os

path = "images"
files = os.listdir(path)

i = 0
for file in files:
    old = path + os.sep + files[i]
    new = path + os.sep + file.replace('&','-')
    os.rename(old,new)
    i+=1

print(i)

改内容:我这里是把标签为10的数据进行头身比裁切,之后加入到labels当中。作为新的line插入到labels当中。

import os

def remove(labels_path):
    lst_dir = os.listdir(labels_path)    #数据列表
    count = 0
    for file_name in lst_dir:          #读取名字
        label_path = labels_path + file_name    #拼接文件路径
        f = open(label_path,'r')    #以读的方式打开文件
        lines = f.readlines()    #读取文件所有行
        f.close()            #关闭文件
        for line in lines:    #挨个读取每行
                line_lst = line.split(' ')    #将每行按照空格分成列表
                if line_lst[0] == "10":        #选出列表【0】里数据等于10的
                    l_x = line_lst[1]
                    l_y = line_lst[2]
                    l_w = line_lst[3]
                    l_h = line_lst[4]
                    y = float(l_y) / 7
                    h = float(l_h) / 7
                    r = open(label_path,'a')    #以添加的方式打开数据
                    str1 ="6"+" "+str(l_x)+" "+str(y)+" "+str(l_w)+" "+str(h)+"\n"
                    r.write(str1)        #写入数据
                    count = count+1
    print(count)

if __name__ == '__main__':
    remove('labels/')

你可能感兴趣的:(python,开发语言)