python: чтение строк и работа с каждой из строк

Всем привет! Мне необходима работа со строками из файла. У меня есть файл bonus.py, в нем содержится:

1
2
3

И есть файл test.py, в нем содержится:

import bonus
file = open('c://testper/bonus.py', 'r')
qwe = file.readlines()
print(qwe) # для считывания строк, что там вообще содержится
if qwe == '1':
    print('Sucs!(1)')
else:
    print('error')

Он выводит error, так как не обнаружил в файле bonus.py цифру 1. В print(qwe) выводится:

['1\n', '2\n', '3\n']

Как сделать так, чтобы он читал ВСЕ строки, и в строках искал то число, которое необходимо для вывода 'Sucs(1)'?


Ответы (1 шт):

Автор решения: Tehnorobot
  1. Так как в файле bonus.py находятся цифры: 1, 2, 3, где каждая с новой строки, следовательно в списке 'qwe' после каждой цифры стоит '\n', '\n' обозначает перенос на след. строчку.
  2. В этой строчке if qwe == '1': вы сравниваете список со строкой, а не строку со строкой.

Вот один из вариантов решения:

import bonus

file = open(r'c://testper/bonus.py', 'r')
qwe = file.readlines()
print(qwe) # для считывания строк, что там вообще содержится
if '1\n' in qwe:
    print('Sucs!(1)')
else:
    print('error')

Вот еще более удобный:

import bonus
file = open(r'C:\Users\mihai\.spyder-py3/bonus.py', 'r')
qwe = [x.strip() for x in file.readlines()] # убираем '\n'
print(qwe) # для считывания строк, что там вообще содержится
if '1' in qwe:
    print('Sucs!(1)')
else:
    print('error')
→ Ссылка