Я бы решил эту проблему, создав словарь имен меток, соответствующих значениям их меток.
labels = {
'Cat': 0,
'Dog': 1,
//etc
}
Затем, когда вы просматриваете каждый файл в вашем каталоге, для каждого файла подумайте, содержит ли имя файла имя метки. Если это так, присвойте ему значение метки. Вы также можете извлечь эту логику в ее собственную функцию, чтобы она была понятнее.
def find_label(labels, to_label): #'labels' is your dictionary of labels, to_label is the string you want to label.
for key in labels.keys():
if key in to_label:
return labels[key]
return -1 #If you've made it here, none of your labels apply
Получив эту функцию, вы просто вызываете ее и используете результаты каждый раз, когда у вас появляется новый файл, который вы хотите пометить.
for filename in files:
label = find_labels(label, filename)
#Write your label to a file or whatever you want to do with it.
Если у вас слишком много ярлыков, из-за которых буквально возникает словарь, создайте словарь с помощью python.
label_names = [] #A list of all your label names that you've read into a list
labels = {}
count = 0
for name in label_names:
labels[name] = count
count+=1
Теперь в вашем словаре меток есть все ваши метки с уникальными значениями меток, которые считаются с 0.