在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 个回答
4
Alex的解决方案是对的。不过如果你想测试一个变量是否存在,可以试试下面的代码:
if 'VARIABLE_VAL' in locals():
....
9
在循环之前,先把你的变量设置成默认值就行了:
VARIABLE_VAL = somethingELSE
for dataline in temp: ...
这样一来,VARIABLE_VAL
就会保持它最开始的默认值,除非在循环中被赋值为其他东西。这样你就不需要做什么奇怪的测试来确保这一点。