Arcgis使用arcpy按字段属性csv表文件批量添加要素字段

压缩包下载

首先下载压缩包,解压将.py文件和.csv文件放在.shp要素文件(可存在多个)目录下

 打开.csv文件对应修改为自己需要的格式,具体如下:

修改好.csv文件后,.py文件右键运行,红框均可运行(Edit打开后按F5运行),运行一段时间后文件夹内所有.shp均添加需要的字段

源代码:(arcgis10.x或arcgisPro版arcpy均可使用),如有交流想法或指正请联系q775915005

#coding=utf-8
import arcpy
import copy
import os
import logging

folder = os.getcwd()
# files=os.listdir(folder)  # 根据需要的文件类型获取目录下文件名列表


feature_classes = []
csvname = []
walk = arcpy.da.Walk(folder)
for dirpath, dirnames, filenames in walk:
    for filename in filenames:
        if filename.endswith("csv") and not filename.startswith("~$"):

            csvname.append(os.path.join(dirpath, filename))
        elif filename.endswith("shp") and not filename.startswith("~$"):
            feature_classes.append(os.path.join(dirpath, filename))
    # csvname1 = [i for i in filenames if i.endswith("csv") and not i.startswith("~$")]

print(csvname,feature_classes)


csvpath = os.path.join(folder, csvname[0])

with open(csvpath, "r") as f:
    file1 = f.readlines()
    try:

        for line0 in file1:
            # line.replace(",\\n","")
            line1 =line0.rstrip("\n")
            p0 = line1.split(",")

            if p0[-1] == "":
                p0.pop(-1)
            for i in feature_classes:
                Fcpath = os.path.join(folder, i)
                if p0[1] == "TEXT":
                    arcpy.AddField_management(Fcpath, field_name=p0[0], field_type=p0[1], field_length=p0[2])
                else:
                    if len(p0) == 2:
                        arcpy.AddField_management(Fcpath, field_name=p0[0], field_type=p0[1])
                    elif len(p0) == 3:
                        arcpy.AddField_management(Fcpath, field_name=p0[0], field_type=p0[1], field_precision=p0[2])
                    elif len(p0) == 4:
                        arcpy.AddField_management(Fcpath, field_name=p0[0], field_type=p0[1], field_precision=p0[2], field_scale=p0[3])

    except arcpy.ExecuteError:
        print(arcpy.GetMessages())

    except Exception as ex:
        print(ex.args[0])





  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值