Spezielle Dateinamen in eine Text-Datei schreiben
Verfasst: Samstag 27. Februar 2021, 19:09
Hallo zusammen,
ich habe folgendes funktionsfähiges Skript, mit dem ich alle Dateinamen in einem Ordner durchlaufe und diese mit ein paar weiteren Angaben in eine Text-Datei schreibe.
Die entsprechenden Dateinamen sehen so aus:
000191.jpg
000192.jpg
000193.jpg
...
Und hier zur Info noch die daraus entstehende Ausgabe:
Jetzt habe ich die Dateinamen geändert und sie sehen so aus:
000191a.jpg
000192a.jpg
000193a.jpg
...
Ich schaffe es aber leider nicht das obige Skript so umzuschreiben, dass das "a" berücksichtigt wird.
Kann mir da jemand einen Tipp geben?
Viele Grüße
chris
ich habe folgendes funktionsfähiges Skript, mit dem ich alle Dateinamen in einem Ordner durchlaufe und diese mit ein paar weiteren Angaben in eine Text-Datei schreibe.
Code: Alles auswählen
import os
import glob
import csv
from PIL import Image
basepath = "train_dataset/"
with open(os.path.join(basepath,'PETS09_train_dataset.txt')) as l:
with open(os.path.join(basepath,'..','Dataset_train.txt'),'w') as t:
trainwriter = csv.writer(t, delimiter=' ')
csvreader = csv.reader(l, delimiter=',')
imageID = None
oldimageID = None
bboxes = []
numboxes = len(l.readlines())
l.seek(0)
for i, line in enumerate(csvreader):
imageID = int(line[0])
if not oldimageID is None and oldimageID != imageID or i == numboxes-1:
trainwriter.writerow([os.path.join(basepath,"{:06d}".format(oldimageID)+".jpg")]+bboxes)
bboxes = []
img = Image.open(os.path.join(basepath,"{:06d}".format(imageID)+".jpg"))
img_width, img_height = 768, 576
x = float(line[2])
y = float(line[3])
w = float(line[4])
h = float(line[5])
bboxes.append(",".join([str(int(x)), str(int(y)), str(int(x+w)), str(int(y+h)),str(0)]))
oldimageID = imageID
000191.jpg
000192.jpg
000193.jpg
...
Und hier zur Info noch die daraus entstehende Ausgabe:
train_dataset/000191.jpg 561,246,594,340,0 681,98,700,153,0 707,100,722,154,0 537,137,567,212,0 656,232,686,322,0 138,156,165,222,0 278,199,309,280,0
train_dataset/000192.jpg 567,248,601,343,0 681,98,700,153,0 707,100,723,154,0 532,138,563,214,0 662,234,691,324,0 132,156,159,222,0 270,199,301,280,0
train_dataset/000193.jpg 573,251,607,346,0 681,98,700,154,0 706,100,722,154,0 526,139,557,215,0 668,236,697,326,0 125,155,152,221,0 263,198,293,279,0
...
Jetzt habe ich die Dateinamen geändert und sie sehen so aus:
000191a.jpg
000192a.jpg
000193a.jpg
...
Ich schaffe es aber leider nicht das obige Skript so umzuschreiben, dass das "a" berücksichtigt wird.
Kann mir da jemand einen Tipp geben?
Viele Grüße
chris