Arcgis使用arcpy按字段属性csv表文件批量添加要素字段(新建空白数据库等)

部署运行你感兴趣的模型镜像

压缩包下载

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

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

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

窗口运行等待2分钟后可以看到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])





您可能感兴趣的与本文相关的镜像

Python3.10

Python3.10

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值