1、报错:arcgisscripting.ExecuteError: ERROR 000539: Invalid field one_1
分析:
如果Python表达式中引用的字段不存在或拼写错误,发生此问题。
解决:
将表达式中的字段名称改为正确的名称。
2、捕获异常
try :
arcpy.Union_analysis (inFeatures, outFeatures, "ALL")
except arcpy.ExecuteError:
arcpy.GetMessages()
3、报错:SyntaxError: cannot assign to literal
解决:
改为condition = '"change" = 0'
4、报错:Object: CreateObject Layer invalid data source
这种是arcpy.mapping.Layer接口报错的问题:
- 检查传入该接口的地址对应的文件是否存在。(如果是在文件地理数据库中的话扩展名不带.shp)
- 注意在拼地址的过程中\和\不要混用,一般都是用\
补充
1、python分离文件名与扩展名
os.path.splitext():分离文件名与扩展名,以最后一个.来区分扩展名
os.path.splitext(file)[0] 获得文件名
os.path.splitext(file)[1] 获得文件扩展名
os.path.splitext("D:/土地利用2017.gdb")[0] # D:/土地利用2017
os.path.splitext("D:/土地利用2017.gdb")[1] # .gdb
os.path.splitext("D:/土地利用2017.gdb.shp")[0] # D:/土地利用2017.gdb
os.path.splitext("D:/土地利用2017.gdb.shp")[1] # .shp
2、python模板字符串
from string import Template
query='''
hi,%{name}this is a ${test}
'''
t = Template(query)
query = t.substitute({'name': '小白', 'test':'测试'})