Как упоминалось в комментариях, переменная fread2
представляет собой одну большую строку, содержащую все строки. Когда вы перебираете строку, вы перебираете ее символы . Итак, пример итерации вашего l oop:
if "test" in "e":
print(x)
Легко видеть, что это не то, к чему вы стремились.
Чтобы решить эту проблему, вы можете выполнить итерацию через строк, выполнив:
for x in fread2.split("\n"):
Но лично я думаю, что более элегантным решением было бы сначала сохранить строки в списке и изменить только способ их печати:
with open('file1.txt',mode='r+') as fopen:
fread = [line.strip() for line in fopen if not line.startswith('#')]
# first assignment
print(*fread, sep='\n')
#second assignment
text = input("Enter text: ")
for line in fread:
if text == line:
print(line)
Обратите внимание, что я использовал with
, чтобы открыть файл, что является идиоматическим c способом сделать это.