赞
踩
首先下载压缩包,解压将.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])
-
-
-
-
-

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。