嘿,我有一個下面的問題,我需要打開一個文件__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 __()',它不應該是一個類,而是一個函數。 –