> if str(ID) in lines:
これは str(ID) とぴったり一致する行があるかどうかを見てる
「一致する行」とはは str(ID) のみで構成され、それ以外の文字が一切入ってない行のこと
例えば
"おまんこ" in ["おちんぽ", "おまんこ"] => True
"まんこ" in ["おちんぽ", "おまんこ"] => False
もし「いずれかの行に str(ID) が現れる」ことをみたければ
if any((str(ID) in x) for x in lines):
と書くか、あるいは単純に text を検索する
if str(ID) in text: