import arcpy import os import sys feature_class = arcpy.GetParameterAsText(0) query = arcpy.GetParameterAsText(1) output_path = arcpy.GetParameterAsText(2) if not arcpy.Exists(output_path): arcpy.CreateFolder_management(os.path.dirname(output_path), os.path.basename(output_path)) gdb_path = os.path.join(output_path, "output.gdb") if not arcpy.Exists(gdb_path): arcpy.CreateFileGDB_management(output_path, "output.gdb", "10.2") expression = arcpy.AddFieldDelimiters(feature_class, "SHAPE_Area") + " < " + query if arcpy.Exists(feature_class): with arcpy.da.UpdateCursor(feature_class, "*", where_clause=expression) as cursor: for row in cursor: cursor.deleteRow() arcpy.FeatureClassToFeatureClass_conversion(feature_class, gdb_path, "output_feature_class") del cursor print("操作完成") else: print("要素类不存在")运行错误:Traceback (most recent call last): File "D:\多对一空间连接\批量删除小面积.py", line 14, in <module> File "c:\program files (x86)\arcgis\desktop10.2\arcpy\arcpy\management.py", line 15674, in CreateFileGDB raise e ExecuteError: 执行失败。参数无效。 ERROR 000800: 该值不是 CURRENT | 10.0 | 9.3 | 9.2 的成员。 执行(CreateFileGDB)失败。 执行(删除小面)失败。请改正错误
时间: 2024-01-29 09:04:03 浏览: 12
这错误可能是由于你的 ArcGIS 版本不受支持所致。根据错误信息,你需要指定一个有效的版本号作为 CreateFileGDB_management 函数的第三个参数。可以尝试将第三个参数改为 "10.0" 或 "9.3",或者根据你的 ArcGIS 版本输入对应的版本号。例如,如果你使用的是 ArcGIS 10.2.2,则可以将第三个参数改为 "10.2"。
相关问题
import arcpy import os import sys feature_class = arcpy.GetParameterAsText(0) query = arcpy.GetParameterAsText(1) output_path = arcpy.GetParameterAsText(2) if not arcpy.Exists(output_path): arcpy.CreateFileGDB_management(os.path.dirname(output_path), os.path.basename(output_path)) expression = arcpy.AddFieldDelimiters(feature_class, "SHAPE_Area") + " < " + query with arcpy.da.UpdateCursor(feature_class, "*", where_clause=expression) as cursor: for row in cursor: cursor.deleteRow() arcpy.FeatureClassToFeatureClass_conversion(feature_class, output_path, "output_feature_class") del cursor print("操作完成")运行错误:IndentationError: expected an indented block (批量删除小面积.py, line 10) 执行(删除小面)失败。请改正代码
根据你提供的代码,错误出现在第10行,提示缩进错误。这个错误通常是由于缩进不正确导致的。请检查代码,确认所有缩进都是4个空格或一个Tab键,并且确保在所有需要缩进的语句后面添加了一个冒号(:)。
以下是修正后的代码:
```python
import arcpy
import os
import sys
feature_class = arcpy.GetParameterAsText(0)
query = arcpy.GetParameterAsText(1)
output_path = arcpy.GetParameterAsText(2)
if not arcpy.Exists(output_path):
arcpy.CreateFileGDB_management(os.path.dirname(output_path), os.path.basename(output_path))
expression = arcpy.AddFieldDelimiters(feature_class, "SHAPE_Area") + " < " + query
with arcpy.da.UpdateCursor(feature_class, "*", where_clause=expression) as cursor:
for row in cursor:
cursor.deleteRow()
arcpy.FeatureClassToFeatureClass_conversion(feature_class, output_path, "output_feature_class")
del cursor
print("操作完成")
```
请注意,现在第10到14行都有一个缩进,而且在第11行和第15行都有一个冒号。
import arcpy # 获取输入和输出参数 input_feature_class = arcpy.GetParameterAsText(0) output_feature_class = arcpy.GetParameterAsText(1) # 复制输入要素类到输出要素类 arcpy.CopyFeatures_management(input_feature_class, output_feature_class)运行后未导出输入的要素,请改正代码
可能是因为代码中没有正确处理输入参数的情况,可以添加一些错误处理代码来解决问题。例如,可以添加以下代码来检查输入要素类是否存在:
```
# 检查输入要素类是否存在
if not arcpy.Exists(input_feature_class):
arcpy.AddError("输入要素类不存在")
sys.exit()
```
完整的修改后代码如下:
```
import arcpy
import sys
# 获取输入和输出参数
input_feature_class = arcpy.GetParameterAsText(0)
output_feature_class = arcpy.GetParameterAsText(1)
# 检查输入要素类是否存在
if not arcpy.Exists(input_feature_class):
arcpy.AddError("输入要素类不存在")
sys.exit()
# 复制输入要素类到输出要素类
arcpy.CopyFeatures_management(input_feature_class, output_feature_class)
```
这样,当输入要素类不存在时,程序将会输出错误信息并停止执行,避免了未处理的异常情况。