Sie machen viele txt für das gleiche Bild. Ich denke da ist so etwas.
Kopieren Sie die Anmerkung und fügen Sie eine neue hinzu oder erstellen Sie eine neue.
how to Geben Sie einen Ordner an und arbeiten Sie wahllos mit dem darin enthaltenen Text. Wenn Sie "train.txt" oder "class.txt" finden, evakuieren Sie bitte.
Suchen Sie nach dem Kopieren nach Nummer nach txt mit demselben Namen und fügen Sie eine Zeile hinzu.
Wenn Sie "2" der Anmerkung im Ordner "arm_anno" zum Anmerkungstext desselben Bildes in "body_anno" hinzufügen möchten
$ python3 yolocopy.py arm_anno body_anno 2
Es wird sein.
code
yolocopy.py
import glob
import os
import sys
path = os.getcwd()
_, infile, outfile, inline = sys.argv # target_file, output_file, target_number
for nowtxt in glob.glob(infile + "/*.txt"):
textline = []
with open(nowtxt) as f:
l_strip = [s.strip() for s in f.readlines()]
for k in l_strip:
if str(k[0]) == str(inline):
textline.append(k)
basename = os.path.basename(nowtxt) #get name
with open(outfile +'/'+ basename, mode='a') as f:
for k in textline:
f.write('\n' + str(k))
trueline = []
with open(outfile +'/'+ basename) as f:
l_strip = [s.strip() for s in f.readlines()]
for k in l_strip:
if len(str(k))>0:
trueline.append(k)
#os.remove(outfile +'/'+ basename)
with open(outfile +'/'+ basename, mode='w') as f:
f.write('\n'.join(trueline))
Ich denke, es wäre einfacher, sich auf den Text zu beschränken, in dem das gleichnamige Bild existiert, aber es ist nicht störend.
Recommended Posts