Ich analysiere # data1 und # data2 aus einer Tonne von Dateien. Einige Dateien haben nicht beide aber so, wenn ich data1 zurückkehren, Daten2 es ergibt sich:Wie gibt man nur die Werte zurück, die existieren?
UnboundLocalError: local variable 'data2' referenced before assignment
ich einige andere Fragen haben gesucht und ich dachte, so etwas wie try/except vielversprechend aussah, aber ich will es nicht einen Fehler zu werfen, wenn einer der Werte nicht existiert.
Ich habe verschiedene if-Anweisungen ausprobiert, bekomme aber den gleichen UboundLocalError.
if data1 and data2:
return data1, data2
Gibt es eine einfache Möglichkeit zu überprüfen, dass der Wert vorhanden ist, bevor Sie versuchen, es zurückzugeben?
data1, data2 = parse_file(filename)
def parse_file(sample):
for line in open(sample, 'r'):
if line.startswith('#data1'):
#Clean up the value
data1 = line.strip().split('=')[-1]
elif line.startswith('#data2'):
#Clean up the value
data2 = line.strip().split('=')[-1]
#Go to next line if it doesn't have either
else: continue
return data1, data2