arcpy runtime error Traceback(most recent call last) 在Arcgis中写的脚本,点要素生成出错
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了arcpy runtime error Traceback(most recent call last) 在Arcgis中写的脚本,点要素生成出错相关的知识,希望对你有一定的参考价值。
源代码如下
...import re
... import arcpy
... from arcpy import env
... env.workspace = "D:\VS\googlepy"#设置工作空间
... reader = open('D:\VS\googlepy\Apoint.txt','r')#在python window打开文件
... s = arcpy.GetParameterAsText(0)#从参数列表中读取参数参数分别是txt、空间参考
... s = s.split('\\')[-1] #切分用\分开的参数
... inputname = s.split('.')[0]#切分名字和后缀名
... #reader=open(arcpy.GetParameterAsText(0))
... prjFile = arcpy.GetParameterAsText(1)获得投影参数并赋值给priFile
... pat = re.compile('<coordinates>.*</coordinates>')#字符串转化为模式对象
... while True: #逐一读取txt中每一行
... line=reader.readline()
... if len(line)==0: #直到字符串长=0,空行,停止读取
... break
... line = line.strip() #去掉首位空格
... m=pat.match(line) 字符串匹配,字符串转换为模式对象
... if m:
... corstr =line #若存在就字符串赋给新变量
... corstr =corstr.strip() #去掉空格
... reader.close() #关掉txt
... corstr=re.sub('<coordinates>(.*?)</coordinates>',r'\1',corstr) #re正则表达式 提取坐标
... coordilst =corstr.split(',') #切分字符串返回列表
... coordilst= [ float(a) for a in coordilst] #字符串转浮点数
... point =arcpy.Point() #Point点对象实例化
... point.X=coordilst[0] #给点的x,y赋值
... point.Y=coordilst[1]
... pointGeometry=arcpy.PointGeometry(point,prjFile) #根据点对象和投影参数建立点几何对象
... outputname =inputname+".shp" #输出含后缀名的矢量文件
... result=arcpy.CopyFeatures_mamagement(pointGeometry,outputname)
... print(result)
... corstr =corstr.strip()
错误报告如下:Runtime error
Traceback (most recent call last):
File "<string>", line 28, in <module>
File "c:\program files (x86)\arcgis\desktop10.2\arcpy\arcpy\arcobjects\mixins.py", line 222, in __init__
*gp_fixargs(args, True))
File "c:\program files (x86)\arcgis\desktop10.2\arcpy\arcpy\geoprocessing\_base.py", line 498, in <lambda>
return lambda *args: val(*gp_fixargs(args, True))
RuntimeError: Object: CreateObject \u521b\u5efa\u7a7a\u95f4\u53c2\u8003\u65f6\u51fa\u9519
... reader.close()
... corstr=re.sub('<coordinates>(.*?)</coordinates>',r'\1',corstr)
... coordilst =corstr.split(',')
... coordilst= [ float(a) for a in coordilst]
... point =arcpy.Point()
... point.X=coordilst[0]
... point.Y=coordilst[1]
... pointGeometry=arcpy.PointGeometry(point,prjFile)
... outputname =inputname+".shp"
... result=arcpy.CopyFeatures_mamagement(pointGeometry,outputname)
... print(result)
...
错误报告如下:Runtime error
Traceback (most recent call last):
File "<string>", line 28, in <module>
File "c:\program files (x86)\arcgis\desktop10.2\arcpy\arcpy\arcobjects\mixins.py", line 222, in __init__
*gp_fixargs(args, True))
File "c:\program files (x86)\arcgis\desktop10.2\arcpy\arcpy\geoprocessing\_base.py", line 498, in <lambda>
return lambda *args: val(*gp_fixargs(args, True))
RuntimeError: Object: CreateObject \u521b\u5efa\u7a7a\u95f4\u53c2\u8003\u65f6\u51fa\u9519
如何从 std::runtime_error 继承?
【中文标题】如何从 std::runtime_error 继承?【英文标题】:How to inherit from std::runtime_error? 【发布时间】:2013-05-13 00:03:03 【问题描述】:例如:
#include <stdexcept>
class A ;
class err : public A, public std::runtime_error("") ;
int main()
err x;
return 0;
("")
在runtime_error
之后我得到:
error: expected '' before '(' token
error: expected unqualified-id before string constant
error: expected ')' before string constant
否则(没有("")
)我明白了
In constructor 'err::err()':
error: no matching function for call to 'std::runtime_error::runtime_error()'
怎么了?
(你可以在这里测试:http://www.compileonline.com/compile_cpp_online.php)
【问题讨论】:
【参考方案1】:这是正确的语法:
class err : public A, public std::runtime_error
而不是:
class err : public A, public std::runtime_error("")
正如您在上面所做的那样。如果你想给std::runtime_error
的构造函数传递一个空字符串,可以这样:
class err : public A, public std::runtime_error
public:
err() : std::runtime_error("")
// ^^^^^^^^^^^^^^^^^^^^^^^^
;
这是一个live example 来显示代码编译。
【讨论】:
我在compileonline.com/compile_cpp_online.php上试过了,你的建议给了我no matching function for call to 'std::runtime_error::runtime_error()'
@MiloChen:你确定你复制的所有内容都正确吗?我添加了一个指向显示代码正确编译的实时示例的链接
哦,我明白了,如果我错过了构造函数err() : std::runtime_error("")
,它将无法编译。不是我想要传递一个空字符串——我是强制到的。
@MiloChen:如果此答案解决了您的问题,请考虑将其标记为已接受 :)【参考方案2】:
想补充一点,err
类可以接收字符串消息,然后简单地将其转发给std::runtime_error
,或者默认为空字符串,如下所示:
#pragma once
#include <stdexcept>
class err : public std::runtime_error
public:
err(const std::string& what = "") : std::runtime_error(what)
;
【讨论】:
以上是关于arcpy runtime error Traceback(most recent call last) 在Arcgis中写的脚本,点要素生成出错的主要内容,如果未能解决你的问题,请参考以下文章
Android Runtime | Trace文件的生成机制