将A(在B里面)标签变成B一样大,合并两个标签

import os
path = "F:/train_final/imgs/"
print(path)
files = os.listdir(path)
# print(files)
for file in files:
    filename = os.path.basename(file)
    print(filename)
    if filename.endswith('txt'):
        print(path + filename)
        size = os.path.getsize(path + filename)
        print(size)
        if size == 0:
            print('文件是空的')
        else:
            fileopen = open(path + filename, 'r+')
            print(filename)
            # for line in fileopen.readlines():
            #     line = line.strip()  # 去掉每行头尾空白
            #     line_split = line.split()
            #     # print(line_split[3:])
            #     line = [float(x) for x in line_split]
            line = [line.strip() for line in fileopen.readlines()]
            # line = line.strip()  # 去掉每行头尾空白

            line1 = []  # 外形1
            line2 = []  # 污染2

            for i in range(0, len(line)):
                if line[i][0] == '1':
                    print(line[i])
                    line1.append(line[i])
                if line[i][0] == '2':
                    print(line[i])
                    line2.append(line[i])

            print(" line1 内容:", line1)
            # nnn = line1[0].split(' ')
            print(" line2 内容:", line2)  # 有空的判断
            # for i in line2:
            #     nnn = line1[i].split(' ')

            if line2:
                print("line2_______start")
                print(line2)
                newline2 = []
                for line22 in line2:
                    print(line22)
                    nnn = line22.split(' ')
                    line22_new = [float(x) for x in  nnn]
                    print(line22_new)
                    x2_center = line22_new[1]
                    y2_center = line22_new[2]
                    w2 = line22_new[3]
                    h2 = line22_new[4]
                    # print(type(h2))
                    x1 = x2_center - w2/2
                    y1 = y2_center - h2/2
                    x2 = x2_center + w2/2
                    y2 = y2_center + h2/2
                    print("line22:", line22_new)
                    for line11 in line1:

                        nnn = line11.split(' ')
                        line11_new = [float(x) for x in nnn]
                        print("line11:", line11_new)
                        x1_center = line11_new[1]
                        y1_center = line11_new[2]
                        w1 = line11_new[3]
                        h1 = line11_new[4]
                        x3 = x1_center - w1 / 2
                        y3 = y1_center - h1 / 2
                        x4 = x1_center + w1 / 2
                        y4 = y1_center + h1 / 2
                        if (x4 > x1 and x2 > x3) and (y4 > y1 and y2 > y3):
                            print("11::", line11_new[1])
                            print("22::", line22_new[1])
                            line22_new[1] = line11_new[1]
                            line22_new[2] = line11_new[2]
                            line22_new[3] = line11_new[3]
                            line22_new[4] = line11_new[4]
                            line22_new[0] = int(line22_new[0])
                            ls2 = [str(i) for i in line22_new]
                            ls3 = ' '.join(ls2)
                            line22 = ls3
                            print("line22:", line22)
                            newline2.append(line22)
                print(newline2)
                print(line2)
                print("line2_______end")
                print(" 替换前line:", line)
                print(" 替换前newline2:", newline2)
                count = 0
                q = open(filename, 'w', encoding='utf-8')  # 创建一个写的文本
                for i in range(0, len(line)):
                    if line[i][0] == '2':
                        line[i] = newline2[count]
                        # fileopen.writelines(line[i])
                        # fileopen.write(line[i].replace(line[i], newline2[count]))
                        count += 1
                    q.writelines(line[i]+ '\n')
                print(" 替换后line:", line)
                print(" 替换后newline2:", newline2)

去重

import os
import codecs

line_seen = set()  # 初始化空的无序集合
pathDir = os.listdir("F:/train_final/imgs/")
for s in pathDir:
    newDir = os.path.join("F:/train_final/imgs/", s)
    if os.path.isfile(newDir):
         if os.path.splitext(newDir)[1] == ".txt":
            print(newDir)
            line_seen = set()  # 初始化空的无序集合
            filename = os.path.basename(newDir)
            in_file = codecs.open(newDir, 'r', encoding='utf-8')
            out_file = codecs.open(filename, 'w', encoding='utf-8')
            lines = in_file.readlines()
            for line in lines:
                if line not in line_seen:
                    out_file.write(line)
                    line_seen.add(line)
 # 这里参考的别人的博客,但是找不到链接了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值