import arcpy import sys # 获取要素类路径和查询条件 feature_class = arcpy.GetParameterAsText(0) query = arcpy.GetParameterAsText(1) if not arcpy.Exists(feature_class): arcpy.AddError("输入的要素类不存在!") sys.exit() # 构建查询语句 expression = arcpy.AddFieldDelimiters(feature_class, "SHAPE_Area") + " < " + query # 使用 arcpy.da.UpdateCursor 删除要素 with arcpy.da.UpdateCursor(feature_class, "*", where_clause=expression) as cursor: for row in cursor: cursor.deleteRow() # 输出要素类到指定路径 output_path = arcpy.GetParameterAsText(2) arcpy.FeatureClassToFeatureClass_conversion(feature_class, output_path, "output_feature_class") # 完成操作并清理内存 del cursor运行错误:Traceback (most recent call last): File "D:\多对一空间连接\批量删除小面积.py", line 22, in <module> File "c:\program files (x86)\arcgis\desktop10.2\arcpy\arcpy\conversion.py", line 1675, in FeatureClassToFeatureClass raise e ExecuteError: 执行失败。参数无效。 ERROR 000732: 输出位置: 数据集 D:\实验2\新建文件地理数据库.gdb\ddd 不存在或不受支持 执行(FeatureClassToFeatureClass)失败。 执行(删除小面)失败。请改正代码
时间: 2024-01-22 17:18:29 浏览: 17
根据错误信息,可以看出是由于输出路径 `D:\实验2\新建文件地理数据库.gdb\ddd` 不存在或不受支持导致的。请确保输出路径正确并且已存在。
此外,你可以尝试在代码中添加以下语句,以确保输出路径已经被创建:
```python
if not arcpy.Exists(output_path):
arcpy.CreateFileGDB_management(os.path.dirname(output_path), os.path.basename(output_path))
```
这段代码会检查输出路径所在的文件地理数据库是否存在,如果不存在则创建该文件地理数据库。你需要将这段代码添加到输出操作之前。
相关问题
import arcpy import sys # 获取要素类路径和查询条件 feature_class = arcpy.GetParameterAsText(0) query = arcpy.GetParameterAsText(1) if not arcpy.Exists(feature_class): arcpy.AddError("输入的要素类不存在!") sys.exit() # 构建查询语句 expression = arcpy.AddFieldDelimiters(feature_class, "SHAPE_Area") + " < " + query # 使用 arcpy.da.UpdateCursor 删除要素 with arcpy.da.UpdateCursor(feature_class, "*", where_clause=expression) as cursor: for row in cursor: cursor.deleteRow() # 完成操作并清理内存 del cursor加一个删除成果后导出数据
import arcpy
import sys
# 获取要素类路径和查询条件
feature_class = arcpy.GetParameterAsText(0)
query = arcpy.GetParameterAsText(1)
if not arcpy.Exists(feature_class):
arcpy.AddError("输入的要素类不存在!")
sys.exit()
# 构建查询语句
expression = arcpy.AddFieldDelimiters(feature_class, "SHAPE_Area") + " < " + query
# 使用 arcpy.da.UpdateCursor 删除要素
with arcpy.da.UpdateCursor(feature_class, "*", where_clause=expression) as cursor:
for row in cursor:
cursor.deleteRow()
# 导出更新后的要素类
arcpy.FeatureClassToFeatureClass_conversion(feature_class, "C:/output.gdb", "updated_feature_class")
# 完成操作并清理内存
del cursor
定义要素类和筛选条件 feature_class = arcpy.GetParameterAsText(0) # 设置参数名称为 0 query = arcpy.GetParameterAsText(1) if not arcpy.Exists(feature_class): arcpy.AddError("输入的要素类不存在!") sys.exit() # 构建查询语句 expression = arcpy.AddFieldDelimiters(feature_class, "your_field_name") + " = " + query # 使用 arcpy.da.UpdateCursor 删除要素 with arcpy.da.UpdateCursor(feature_class, "*", where_clause=expression) as cursor: for row in cursor: cursor.deleteRow() # 完成操作并清理内存 del cursor运行错误:Traceback (most recent call last): File "D:\多对一空间连接\批量删除小面积.py", line 4, in <module> NameError: name 'feature_class' is not defined 执行(删除小面)失败。请改正代码
根据你提供的代码和错误提示,可能是由于 feature_class 变量没有被正确定义导致的。请检查你的代码,确保在获取参数值之后,feature_class 变量已经被正确赋值。
你可以尝试修改代码如下:
```python
import arcpy
import sys
# 获取要素类路径和查询条件
feature_class = arcpy.GetParameterAsText(0)
query = arcpy.GetParameterAsText(1)
if not arcpy.Exists(feature_class):
arcpy.AddError("输入的要素类不存在!")
sys.exit()
# 构建查询语句
expression = arcpy.AddFieldDelimiters(feature_class, "your_field_name") + " = " + query
# 使用 arcpy.da.UpdateCursor 删除要素
with arcpy.da.UpdateCursor(feature_class, "*", where_clause=expression) as cursor:
for row in cursor:
cursor.deleteRow()
# 完成操作并清理内存
del cursor
```
请将上述代码中的 "your_field_name" 修改为你要删除的字段名称。如果还有其他问题,请提供更多具体的错误信息。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)