我遇到了一个奇怪的问题,我正在处理的代码,它只发生在我处理这样格式化的数据时。这来自一个使用多值参数的脚本。见下文:
fc = "'数据库连接\\Prod@GISdb.OSA.sde\\Prod.Water\\Prod.ControlValve';'数据库连接\\Prod@GISdb.OSA.sde\\Prod.Water\\Prod.wFitting';'数据库连接\\Prod@GISdb.OSA.sde\\Prod.Water\\Prod.wHydrant'" fclist = fc.split(";") for each in fclist: fieldnames = [f.name for f in arcpy.ListFields(each)]打印字段名
由此我得到了错误:
运行时错误
回溯(最近一次调用):
文件"
文件“c:\program files (x86)\arcgis\desktop10.7\arcpy\arcpy\__init__.py”,第1139行,在ListFields中
返回的全科医生。listFields(dataset, wild_card, field_type)
文件“c:\program files (x86)\arcgis\desktop10.7\arcpy\arcpy\geoprocessing\_base.py”,第346行,在listFields中
self._gp。ListFields (* gp_fixargs (args,真)))
IOError:“'Database Connections\Prod@GISdb.OSA.sde\Prod.Water\Prod.ControlValve'”不存在
我对这个错误感到不知所措,因为它经常出现。如果有人有任何意见如何避免这种错误,我将非常感激!
解决了!转到解决方案。
结果是每个文件路径周围的单引号(')给了我问题。从没想过这些能预防arcpy。描述和arcpy。ListFields工作
也许是字符串的原始格式
fc = "r' database Connections\\Prod@GISdb.OSA.sde\\Prod.Water\\Prod.ControlValve';r' database Connections\\Prod@GISdb.OSA.sde\\Prod.Water\\Prod.wFitting' "; r' database Connections\\Prod@GISdb.OSA.sde\\Prod.Water\\Prod.wHydrant'" fclist = fc.split(";") for each in fclist: print (each) fieldnames = [f.name for f in arcpy.ListFields(each)] print fieldnames