ArcPy脚本——根据指定关键字批量导出

本工具用于批量导出shp数据中指定字段等于XX的数据,并输出为新的shp。例如批量导出shp数据中[系统级别]=‘一级’ 的数据。

# -*- coding: utf-8 -*-
# ---------------------------------------------------------------------------
# Created on: 2018-09-27 
#   (generated by GL:qq,695396984)
# Description: 
# ---------------------------------------------------------------------------

---------------------
import arcpy, os

#输入文件夹
workspace = arcpy.GetParameterAsText(0)
#查询条件,例如[系统级别]='一级'
whereclause=arcpy.GetParameterAsText(1)
#输出数据的后缀,例如将所有一级的输出内容加"_1",则DLGX.shp输出后即为DLGX_1.shp
suffix = arcpy.GetParameterAsText(2)
#输出文件夹
output_folder = arcpy.GetParameterAsText(3)
#用于过滤的字段名
fieldname=arcpy.GetParameterAsText(4)
#无该字段时是否输出全部内容
isAllExp=arcpy.GetParameterAsText(5)
arcpy.env.workspace = workspace
Dict = {}
 
#"walk" through subfolders and below, and drop all contents into the empty dictionary
#unique shapefile names as keys, and with their file path as values.
for root, dirs, files in os.walk(workspace):
    for fc in arcpy.ListFeatureClasses():
        output = os.path.join(output_folder,fc[:-4]+suffix+".shp")
        if len(arcpy.ListFields(fc,fieldname))>0:
          arcpy.Select_analysis(fc, output, whereclause)
          arcpy.AddMessage(fc+"  export ok")
        else:
          if(isAllExp):
            arcpy.Select_analysis(fc, output, "1=1")
            arcpy.AddMessage(fc+"  field not exist, export all data")
          else:
            arcpy.AddMessage(fc+"  export failed,field not exist")

运行结果

  • 0
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

水梦雪幻

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值