Привет, У меня есть следующая проблема: мне нужно открыть файл в __init__()
и с помощью функции check
Мне нужно проверить, являются ли строки/числа в строках этого файла одинаковыми или нет. Если они нет, он должен вернуть True
, если они должны быть возвращены False
, а если линий больше нет None
. Я не знаю, сколько строк будет в файле. Мой код работает, тестер дает мне 90%, но он говорит, что я не закрываю файл, я понимаю, почему он говорит, но не знаю, где положить конец. Однако, если я открыл его с with
, он должен работать, но я не знаю, как заставить его работать таким образом.Открыть файл в __init __() python
Мой код:
class Program:
def __init__(self, file_name):
self.t = open(file_name, 'r')
def check(self):
row = self.t.readline()
array = []
for i in row.split():
if i not in array:
array.append(i)
if row.split() == []:
return None
elif array == row.split():
return True
else:
return False
"""
#testing
if __name__ == '__main__':
u = Program('file.txt')
z = True
while z is not None:
z = u.check()
print(z)
"""
Пример файла:
15 9 22
2014 2015 2014 2015
p py pyt pyth pytho python
ab ab ab ab ab
Да, вы никогда не закрываете файл. Является ли файл достаточно маленьким, чтобы вы могли просто прочитать его в памяти? Или вы можете структурировать свой собственный код в качестве менеджера контекста? – jonrsharpe
@jonrsharpe Не уверен, что я точно понимаю вторую часть вопроса, но файл не должен быть несколько большим, вы можете увидеть пример файла, поэтому он должен быть аналогичного размера или всего нескольких строк. – Matis
Если ваш класс имеет два метода, один из которых является '__init __()', он не должен быть классом, а функцией. –