我使用Python2.7用OGR from OSGeo修改ESRI形状文件。我创建了一个新的属性字段,但是属性表中可能已经存在该字段名。在这种情况下,函数将显示如下警告消息
Warning 6: Normalized/laundered field name: 'id' to 'id_1'
这意味着它会自动重命名字段。我没问题,但我想抓住那个警告信息来取新名字。我尝试使用warnings模块,但无法使其工作。我要做的是:
^{pr2}$我尝试了In Python, how does one catch warnings as if they were exceptions?中最上面的两个答案,但我担心警告消息没有被识别为真正的警告。我是这样测试的:
warnings.filterwarnings('error')
try:
out_lyr.CreateField(field)
except Warning:
print 'WARNING' # never ends up here
为了抓住真正的警告:
with warnings.catch_warnings(record=True) as w:
warnings.simplefilter('always')
out_lyr.CreateField(field)
print w # returns an empty list
我知道在第一时间避免特定警告消息的方法,但是我很想知道如何真正捕捉到警告消息。有什么建议吗?在
目前没有回答
相关问题 更多 >
编程相关推荐