我有我在/var/tmp
開發研製...當我移動到需要的目錄由於某種原因,它返回以下錯誤的腳本:的Python:分配問題
Traceback (most recent call last):
File "tail.py", line 104, in <module>
test=isItAlive(line)
File "tail.py", line 55, in isItAlive
return test
UnboundLocalError: local variable 'test' referenced before assignment
它訴說的功能是:
def isItAlive(text):
with open(valcsv) as f:
searches = [x.split(',')[1] for x in f.read().splitlines()]
for search in searches:
# print search
if not search in text:
test="TOBEADDED"
else:
test=search
break
return test
f.close()
我可能是錯的,但我很確定在用'with'打開的文件上調用'close()'是多餘的。 –
也只是注意到你的'return'語句在你的'with'塊中。可能不是最安全的事情,因爲它可能通過自動清理而短路。這也意味着你的'f.close()'是雙重冗餘的,因爲它永遠不會被調用。 –
@ sr222不,它不會因爲清理而造成短路。 ''with'是更好的替代方法,使用'try/finally'清理文件。它提供與'finally'一樣的保證,以確保清理代碼在出口時運行,無論執行如何離開模塊。否則,這將是毫無意義的;這很容易確保文件在沒有任何異常情況發生的情況下被關閉。 – Ben