嘿,我有一个下面的问题,我需要打开一个文件__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 __()',它不应该是一个类,而是一个函数。 –