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("操作完成")运行错误:执行: 删除小面 Export_Output 497477.651983 D:\实验2\新建文件地理数据库.gdb\qqqqqq 开始时间: Wed May 24 19:53:53 2023 正在运行脚本 删除小面... Failed script 删除小面... Traceback (most recent call last): File "D:\多对一空间连接\批量删除小面积.py", line 10, in <module> File "c:\program files (x86)\arcgis\desktop10.2\arcpy\arcpy\management.py", line 15674, in CreateFileGDB raise e ExecuteError: ERROR 000792: 无法将输出写入到目标文件夹 D:\实验2\新建文件地理数据库.gdb。 执行(CreateFileGDB)失败。 执行(删除小面)失败。 失败 在 Wed May 24 19:53:53 2023 (经历的时间: 0.17 秒)请改正代码
时间: 2023-12-30 19:03:22 浏览: 127
代码存在几个问题:
1. 第一行的 `import arcpy`应该单独一行,不应该和第二行连在一起。
2. 第三行应该是 `import os`。
3. 第四行应该是 `import sys`。
4. 第六行获取的 `output_path` 应该是文件夹路径,而不是包含文件名的路径。
5. 在执行创建文件地理数据库时,需要指定数据库的版本,例如: `arcpy.CreateFileGDB_management(os.path.dirname(output_path), os.path.basename(output_path), "10.2")`。
6. 在删除小面积时,应该先判断要素类是否存在,如果不存在则无法进行更新操作。
7. 在删除小面积时,应该使用 `cursor.deleteRow()` 来删除要素,而不是 `cursor.remove()`。
8. 在导出要素时,应该将输出要素类的名称指定为 `output_feature_class`。
修改后的代码如下:
```
import arcpy
import os
import sys
feature_class = arcpy.GetParameterAsText(0)
query = arcpy.GetParameterAsText(1)
output_path = arcpy.GetParameterAsText(2)
if not arcpy.Exists(os.path.dirname(output_path)):
arcpy.CreateFolder_management(os.path.dirname(output_path))
if not arcpy.Exists(output_path):
arcpy.CreateFileGDB_management(os.path.dirname(output_path), os.path.basename(output_path), "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, output_path, "output_feature_class")
del cursor
print("操作完成")
else:
print("要素类不存在")
```
阅读全文
相关推荐
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![](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)
![](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)
![](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/20241231044930.png)
![pptx](https://img-home.csdnimg.cn/images/20241231044947.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)