Python批量修改shapefile属性表字段名(arcpy增删字段)

本文介绍了作者在时间紧迫的情况下,尝试3种方法成功修改shapefile属性表字段名的过程。方法1和2分别通过dbf文件读写和尝试使用arcpy的AlterField_management函数,但都因为空值、编码问题和函数不存在而失败。最终,通过方法3实现了字段名的修改,即新增同属性字段、计算新字段值等于旧字段值,然后删除旧字段。
摘要由CSDN通过智能技术生成

尝试了3种方法,时间紧迫屡败屡战,最后终于成功。

方法1和2是失败记录,希望有类似经历成功的同学分享下经验。

方法3是成功记录,修改 = 新增 + 计算 +删除相关字段,因为没有删除改名前字段需求,故删除部分没有另做。

  • 方法1 —— 【将shapefile的dbf文件按csv文件读写】

——失败,dbf中有空值及编码问题

不同文件间通过改后缀简单粗暴改写,操作方法存在风险

过于依赖熟悉的领域,由于时间紧迫没有试用dbf第三方库

#-*- coding: utf-8 -*-

import os
import shutil
import csv

#批量修改shp中dbf文件中的字段名
#LANE_WIDTH改为LANEWIDTHL
#LANE_WID_1改为LANEWIDTHR
#ORIGIN_LIN改为ORG_LINKID

roadDir = r"D:\20Q1\00DATA\ModifyTitle\ROAD_TEST\\"
modifyRoadDir = r"D:\20Q1\00DATA\ModifyTitle\ModifiedLink\\"
csvDir = r"D:\20Q1\00DATA\ModifyTitle\ROAD_CSV\\"
fileList = os.listdir(roadDir)

num = 0
for file in fileList:
    #新建修改后的城市文件夹
    city = file.split("_")[0]
    
    os.mkdir(csvDir + city)    
    os.mkdir(modifyRoadDir + city)
    shutil.copy(roadDir + file + "/RD_LINK.dbf", csvDir + city + "/RD_LINK.csv")
    
    print("正在生成{}新dbf文件......".format(city))
   
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值