Как собрать список артикулов
smetana = []
for line in tov:
pole = line.strip('\n').split(';')
if 'сметана' in pole[2].lower():
smetana.append(pole[0])
Читается прямо: разбираем строку на поля, смотрим наименование и, если в нём есть нужное слово, запоминаем артикул.
Два места, где легко ошибиться.
Берём поле, а не символ. line — это строка целиком, поэтому line[2] вернёт третью букву. Поле появляется только после split.
line[2] → 'С' буква
pole[2] → 'Сметана 15%' поле
Приводим к строчным. В базе написано «Сметана» с большой буквы, а ищем мы «сметана». Без .lower() совпадения не будет.
И ищем через in, а не сравниваем целиком: сметаны в базе два вида — 15% и 25%, и нужны оба.