在Python中测试变量是否存在的最佳方法

时间:2010-07-30 02:02:03

标签: python

我正在阅读一百多万个文件来删除一些数据。这些文件通常非常统一,但偶尔会出现我预期找不到的问题。

例如,我希望一些sgml代码能够识别我需要的值

for data_line in temp  #temp is a list of lines from a file
    if <VARIABLENAME> in data_line:
        VARIABLE_VAL=data_line.split('>')[-1]

稍后我使用VARIABLE_VAL。 但我有时会得到一个例外:文件中没有

的行
<VARIABLENAME>theName

为了解决这个问题,我在处理完所有行后添加了这一行:

try:
    if VARIABLE_VAL:
        pass
except NameError:
    VARIABLE_VAL=somethingELSE

我已经在某个地方看到了(但我找不到了)一个看起来像

的解决方案
if not VARIABLE_VAL:
    VARIABLE_VAL=somethingELSE

任何帮助将不胜感激

2 个答案:

答案 0 :(得分:7)

在循环之前将变量初始化为默认值:

VARIABLE_VAL = somethingELSE
for dataline in temp: ...

这样,VARIABLE_VAL将保留其初始默认值,除非绑定到循环中的其他内容,并且您无需进行任何奇怪的测试以确保这一点。

答案 1 :(得分:2)

Alex的解决方案是正确的。但是,如果您确实想要测试变量是否存在,请尝试:

if 'VARIABLE_VAL' in locals():
    ....