0

私が開発して動作したスクリプトが/var/tmpありました...何らかの理由で必要なディレクトリに移動すると、次のエラーが返されます。

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()
4

2 に答える 2

4

searches値が空であるため、forループがに値を割り当てることはありませんtest

関数の開始時に初期化testします。

def isItAlive(text):
    test = None

valcsvそして、ファイルが空である理由を理解します。

于 2012-10-05T13:44:08.003 に答える
3

が空のリストの場合searches、ループ全体がスキップされ、test初期化されることはありません。test = Noneループの前に、その旨を宣言する必要があります。

于 2012-10-05T13:44:35.497 に答える