我有一个包含subjectid_num_[dog/cat]_[option]的 txt 文件。
ID1_0123_CAT_ANIMAL_3
ID1_0123_CAT_ANIMAL_GOOD_3
ID1_0123_ABC_3
ID2_1234_CAT_ANIMAL_3
ID2_1234_CAT_ANIMAL_GOOD_3
ID2_1234_DOG_ANIMAL_2
ID2_1234_DOG_ANIMAL_GOOD_0
ID2_1234_ABCD_3
ID3_4321_DOG_ANIMAL_1
ID3_4321_DOG_ANIMAL_GOOD_4
ID3_4321_DOG_3
我想过滤文件以获得满足条件的输出。例如,下面的代码将文件的输出具有CAT和GOOD的名义,并且不包含DOG与GOOD在名称中。名称由相同subject_id和相同的数字确定num。但是,代码没有显示我的预期输出。我该如何解决?
这是我的代码
with open("./cat_dog.txt", 'r') as f:
files_list = [line.rstrip('\n') for line in f]
file_filter = []
for i, cat in enumerate(files_list):
if 'GOOD' in cat and 'CAT' in cat:
subject_id = cat.split('_')[0]
num_id = cat.split('_')[1]
subject_num = subject_id + '_' + num_id
for j, dog in enumerate(files_list):
if subject_num in dog and 'GOOD' in dog:
if 'GOOD' in dog and 'DOG' in dog:
continue;
else:
file_filter.append(cat)
当前输出为
ID1_0123_CAT_ANIMAL_GOOD_3
ID2_1234_CAT_ANIMAL_GOOD_3
虽然预期是
ID1_0123_CAT_ANIMAL_GOOD_3
互换的青春
相关分类