重命名要素类
来源:互联网 发布:软件测试基础知识总结 编辑:程序博客网 时间:2024/06/06 02:14
配置文件格式如下:
引入了读取Excel格式xlsx格式的第三方库xlrd(xlrd-0.9.3.tar.gz)
具体Python代码如下:
# -*- coding: utf-8 -*-# ---------------------------------------------------------------------------# Merge.py# Created on: 2013-01-21 10:25:22.00000# (generated by WangLin_TJCH)# Description: # ---------------------------------------------------------------------------# Import arcpy moduleimport arcpyimport os.pathimport timeimport sysimport randomimport xlrdfrom arcpy import envexcelconfig = "中英文图层名称对照.xlsx"FCDBDir = "D:\\第一批国情普查检查\\复件 要素数据"# key存放中文 value存放英文dicEnCnFC={}fcall=[]GDBAllPath=[]# 获取脚本运行目录 os.getcwd()# 获取脚本所在目录 os.path.split(os.path.realpath(sys.argv[0]))[0]fullconfig = os.path.join(os.getcwd(),excelconfig)if os.path.isfile(fullconfig): workbook = xlrd.open_workbook(fullconfig) try: sh = workbook.sheet_by_index(0) nrows = sh.nrows ncols = sh.ncols row_list = [] # 从索引为1的地方开始读取,不包含nrows for rownum in range(1,nrows): row = sh.row_values(rownum) if row: for colnum in range(0,ncols): cellvalue = row[colnum].strip() if colnum % 2==1: if not dicEnCnFC.has_key(cellvalue): dicEnCnFC[cellvalue] = row[colnum-1] except: print "read Excel Failed:"+fullconfig+Exception#Get Dataset and FeatureClass,Store in dicAllFC,Key =fc value= dsif os.path.exists(FCDBDir): for dirpath,dirnames,filenames in os.walk(FCDBDir): # 遍历GDB文件夹 获取GDB for dirname in dirnames: if ".gdb" in dirname: gdbfilepath = os.path.join(dirpath,dirname) GDBAllPath.append(gdbfilepath) # 遍历MDB文件夹 获取MDB for filename in filenames: if os.path.splitext(filename)[1]=='.mdb': mdbfilepath = os.path.join(dirpath,filename) GDBAllPath.append(mdbfilepath) # 遍历Shp文件夹 获取Shape for filename in filenames: if os.path.splitext(filename)[1]=='.shp': shpfilepath = os.path.join(dirpath,filename) GDBAllPath.append(dirpath) for everyfilepath in GDBAllPath: env.workspace = everyfilepath singlefclist = arcpy.ListFeatureClasses("","All") if singlefclist and len(singlefclist)>0: for singlefc in singlefclist: # 如果singlefc是unicode则不做改变,否则将utf-8的singlefc编码解码成unicode if not isinstance(singlefc,unicode): singlefc = singlefc.decode('utf-8') # 对于Shape FC会带扩展名.shp,如果是gdb或mdb 则不带 if '.shp' in singlefc: singlefc = singlefc[0:singlefc.find('.shp')] if dicEnCnFC.has_key(singlefc): arcpy.Rename_management(singlefc+".shp",dicEnCnFC[singlefc]+".shp",'') print "Rename "+singlefc+"->"+dicEnCnFC[singlefc]+" Succeed At"+time.strftime("%Y-%m-%d %X",time.localtime()) else: if dicEnCnFC.has_key(singlefc): arcpy.Rename_management(singlefc,dicEnCnFC[singlefc],'') print "Rename "+singlefc+"->"+dicEnCnFC[singlefc]+" Succeed At"+time.strftime("%Y-%m-%d %X",time.localtime()) datasetlist = arcpy.ListDatasets("","Feature") for dataset in datasetlist: # 如果dataset是unicode则不做改变,否则将utf-8的dataset编码解码成unicode if not isinstance(dataset,unicode): dataset = dataset.decode('utf-8') if isinstance(everyfilepath,unicode): env.workspace = everyfilepath+"\\"+dataset dspath = everyfilepath+"\\"+dataset else: env.workspace = everyfilepath+"\\"+dataset.encode('gb2312') dspath = everyfilepath+"\\"+dataset.encode('gb2312') fclist = arcpy.ListFeatureClasses("") if fclist and len(fclist)>0: for fc in fclist: if dicEnCnFC.has_key(fc): arcpy.Rename_management(fc,dicEnCnFC[fc],'') print "Rename "+fc+"->"+dicEnCnFC[fc]+" Succeed At"+time.strftime("%Y-%m-%d %X",time.localtime())print "Done"
0 0
- 重命名要素类
- 使用ArcObjects或者ArcEngine对ArcGIS要素类重命名
- 根据要素创建要素类
- ArcGIS Engine检索要素集、要素类和要素
- 创建要素类
- 要素类的形式
- 要素类的复制
- 简单要素类ABC
- WFS至要素类
- C++:类设计要素
- vc重命名类名
- 重命名
- 重命名
- ArcSDE Java SDK获得要素类的要素数量FeatureCount
- 求要素类中一部分要素的并集
- intersect 裁剪导出要素类
- 要素类的复制方法
- arcengine 要素类的复制
- Oracle over函数
- 渐变背景(蓝紫渐变) css代码
- COMODO杀毒软件Linux版
- Mac中常用的终端命令
- 搭建hibernate环境
- 重命名要素类
- Escalation of Commitment(承诺升级)
- 当一个线程进入对象的synchronized方法后,其它线程是否可进入此对象的其它方法?
- Myeclipse10 安装Aptana插件
- 解决Hibernate:could not initialize proxy - no Session
- order by null
- Listview最后一行被覆盖的bug
- ocx
- 图像处理基本概念、术语