如下图,原本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)