Вообще, я бы советовал использовать как минимум json, который можно преобразовать в структуры данных python. Ну или базу данных. Для таких случаев они больше подходят.
Но тут уже решайте сами...
Касательно вопроса:
Ну, давайте подумаем логически. Есть файл вида:
22
12
146
34
Искомый id - 146. То есть 3-я строка. Разумеется, что поскольку ни 1, 2 и 4 строки не подходят - будет срабатывать else.
Выход из этой ситуации - вынести запись в файл из цикла в отдельный блок условия. Я бы, например, добавил булеву переменную перед циклом со значением False и в блоке
if a in line:
менял на True