Python批量修改.txt中的文本内容--图片路径

如下图,原本repo中的.txt中的图片索引途径如下。 现在我们需要对它进行批量修改
在这里插入图片描述说明:我的.txt中每一行是有6个pic_name ; 我的做法就是一次读取每一行,然后去除首位空格和换行府(strip函数), 然后以空格分离6个pic_name(split函数), 最后用replace替换部分路径。

from os import name

# a ='D:/dataset/trainset/image/origin/0313-1/10000/5.jpg'
# new = a.replace('D:/dataset', '/home/b502/xiong')
# print(new)
# print(a)

def file_content_rename(src_txt_file,target_txt_file):
    with open(src_txt_file, 'r') as file_to_read:
        while True:
            lines = file_to_read.readline()
            if not lines:
               break
            item = lines.strip().split()   # 去除首位空格及和换行符。 然后将每一行的内容,以它们中间的空格分开----这样就可以将每个批次的图片分开,然后单独修改路径名称
   
            for idx in range(len(item)) :
           
                name = item[idx]   # 读取每一行中的pic的name
                # print(name)
                newname = name.replace('D:', '/media/b502/ABC/Robust-Lane-Detection')  # 替换name
                print(newname)
                newfile=open(target_txt_file,'a')
                if idx != 5:
                    newfile.write(newname+' ')
                else :
                    newfile.write(newname+'\n')
                newfile.close()
    # f = open(src_txt_file)
    # lines = f.readlines() #整行读取
    # # f.close()
    # for line in lines:
    #     rs = line.strip() #去除原来每行后面的换行符,但有可能是\r或\r\n
    #     print(rs)
    #     for idx in len(lines) :
    #         name = lines[idx]
    #         print(name)
        # newname = rs.replace('/gt', '/img')
        # newname = newname.replace('.txt', '.jpg')
        # newname = rs.strip()
        # newname = newname.replace('_ok','_unknown')
        # newname = newname.replace('.txt', '.tiff')
        # newfile=open(target_txt_file,'a')
        # newfile.write(newname+'\n')
        # newfile.close()


# file1 = './train.txt'
file1 = '/home/b502/xiong/ConvGRULane-main/data/train_index.txt'
file2 = '/home/b502/xiong/ConvGRULane-main/data/train_index_new.txt'

file_content_rename(file1,file2)









评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值