arcpy表连接与字段名更改

该博客介绍了在GIS操作中如何避免使用AlterField_management修改shp文件字段名导致的错误。通过Python的arcpy模块,实现批量读取.dbf文件,将字段连接到指定的shapefile中,并在连接后为每个字段创建新的名称,同时删除原始的'MEAN'字段。整个过程展示了GIS数据处理中的自动化方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

注意不能用AlterField_management修改shp文件的字段名称,会报错

# encoding:utf-8
import arcpy
import os

if __name__ == '__main__':
    arcpy.env.workspace = r'G:\字段连接'
    dbfs = os.listdir('./Dpm')
    dbfs = filter(lambda dbffile: dbffile.endswith('.dbf'), dbfs)
    joinShp = r'G:\字段连接\Dpm\温县.shp'
    count = 0
    fieldType = None
    for dbf in dbfs:
        joindbf = r'G:\字段连接\Dpm\{}'.format(dbf)
        arcpy.JoinField_management(in_data=joinShp, in_field='FID', join_table=joindbf, join_field='FID_',
                                   fields=['MEAN'])
        dbfname = dbf[3:-4]
        meanfield = arcpy.ListFields(joinShp, 'MEAN')[0]
        if count == 0:
            fieldType = meanfield.type
        arcpy.AddField_management(joinShp, 'MEAN{}'.format(dbfname), fieldType)
        arcpy.CalculateField_management(joinShp, 'MEAN{}'.format(dbfname), "!" + 'MEAN' + "!", "PYTHON", "")
        arcpy.DeleteField_management(joinShp, 'MEAN')
        count += 1
        print ('{}:{}'.format(count, dbf))
    print ('finished!')
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值