重命名要素类

配置文件格式如下:

引入了读取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 module
import arcpy
import os.path
import time
import sys
import random
import xlrd
from arcpy import env

excelconfig = "中英文图层名称对照.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= ds
if 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"
时间: 2024-11-03 12:39:29

重命名要素类的相关文章

3、File类的方法之创建、删除、重命名

一般我们调用内置类的方法,都是指调用其成员方法,故而以下几种方法都是File类的成员方法,常用的有以下3种, 分别是 //创建 public boolean createNewFile() public boolean mkdir() public boolean mkdirs() //删除 public boolean delete() //重命名 public boolean rannameTo(File dest) /* 需要注意的是,这些方法都是File内置方法,jdk里已经有了,所以并

iOS类文件重命名

原文链接: iOS类文件重命名 简书主页:http://www.jianshu.com/users/37f2920f6848 Github主页:https://github.com/MajorLMJ iOS开发者公会-技术1群 QQ群号:87440292 iOS开发者公会-技术2群 QQ群号:232702419 iOS开发者公会-议事区   QQ群号:413102158

文件上传工具类(重命名,以及判断类型)

public class FileUploadUtil {     public static final List<String> ALLOW_TYPES = Arrays.asList(             "image/jpg","image/jpeg","image/png","image/gif"     ); //文件重命名     public static String rename(Strin

Java File类(文件的读取,写入,复制与重命名)

文件的重命名   file.reNameTo() public boolean renameTo(File dest) 重新命名此抽象路径名表示的文件. 此方法行为的许多方面都是与平台有关的:重命名操作无法将一个文件从一个文件系统移动到另一个文件系统,dest为新命名的抽象文件 public boolean ReName(String path,String newname) {//文件重命名 //Scanner scanner=new Scanner(System.in); File file

iOS 类文件重命名操作步骤

为class修改名字: 1. 在头文件中双击选中类名:@interface之后即为类名 (不选中,则重命名选项将是disable的状态): 2. 工具栏中选择 Edit-Refactor - Rename: 3. 修改名字后,预览所有会发生的改动,选择需要的改动,最后Save保存. 参考链接:http://stackoverflow.com/questions/992381/rename-a-class-in-xcode-refactor-is-grayed-out-disabled-why

ArcGIS创建要素类

在使用ARCGIS软件进行工作时,免不了要建立地理数据库和要素类之类的.一下是我创建文件地理数据库并在数据库中创建要素类写相关步骤: 1.启动软件,可以使用ARCCatalog直接进行创建也可以使用ArcMap中ARCCatalog窗口进行创建.总之需要用到ARCCatalog这个数据管理工具:这里我们直接启动ArcMap: 2.在ArcCatalog窗口文件连接中展开到你需要创建的位置的文件夹,右键单击选择新建——文件地理数据库,创建完成可进行重命名: 3.选择你创建好的文件地理数据,右键单击

oc NSFileManager 文件夹创建、文件移动、文件复制、文件重命名

// 初始化管理类 NSFileManager * manager = [NSFileManager defaultManager]; // 路径 NSString * DirectoryPath = [NSHomeDirectory() stringByAppendingPathComponent:@"/desktop/我的文件夹1/我的文件夹2"]; NSError * error = nil; if ([manager createDirectoryAtPath:Director

typedef 类型重命名 和 #define 宏定义(1)

http://www.blogjava.net/jasmine214--love/archive/2010/11/29/339307.html 在现实生活中,信息的概念可能是长度,数量和面积等.在C语言中,信息被抽象为int.float和double等基本数据类型.从基本数据类型名称上, 不能够看出其所代表的物理属性,并且int.float和double为系统关键字,不可以修改.为了解决用户自定义数据类型名称的需求,C语言中引入类 型重定义语句typedef,可以为数据类型定义新的类型名称,从而

WPF如何实现TreeView节点重命名

我们经常看到一些软件比如酷狗音乐,在对列表右键进行重命名的时候,当前列表会泛白并且进入可编辑状态,当我们更改完成后就会并进入非编辑状态,这些具体是怎么实现的呢?下面的方法也许会提供一些思路,下面的TreeView节点是通过数据双向绑定的方式,绑定到TextBlock控件和TextBox控件的Text属性上,并且让两者绑定相同的属性,同时使TextBox控件刚好完全覆盖TextBlock控件, 由于TextBlock控件和TextBox控件的区别,TextBlock控件无法实现编辑,所以我在Tex