# -*- coding: cp936 -*-
# 动态生成文件名,使输出不至于覆盖原有文件
# billschen@163.com
# billschen.com
# ----------------------------------------------------------
# 时行arcgis脚本处理,不可减免要生成新的文件(如featu class,
# shape file).举个例子:运行Multipart to Singlepart 工具,
# 将生产生一个新文件,这个工具会“聪明”,产生的新文件的文件名会是一个
# “新”的文件名,使旧的文件不至于被覆盖。那个在自己写的脚本中,如何保证
# 脚本生成的文件不与旧的文件同名呢?可以应用 gp.exists 方法进行文件
# 是否存在的检查,以下是笔者做的一个小例子,读者可运行一个体验效果。
# ----------------------------------------------------------
import os, sys, string
import arcgisscripting
gp = arcgisscripting.create()
# 定义需要加载工具箱的路径名称
toolNameList =[r'ArcToolbox\Toolboxes\Data Management Tools.tbx',]
arcGisScriptPath = None
arcGisToolPath = None
try:
# 获得 arcgisscripting.dll 所在的路径,目的是为了取得ArcGis的安装路径
arcGisScriptPath = arcgisscripting.__file__
for toolName in toolNameList:
arcGisToolPath = \
arcGisScriptPath.replace( \
r'bin\arcgisscripting.dll', toolName)
gp.AddToolbox(arcGisToolPath)
except:
gp.AddMessage('无法加载工具箱'+arcGisToolPath+',请检查的你的ArcGis安装是否完整')
del gp
sys.exit()
# 定义一个函数,以获得新的文件名。
# 以更不去覆盖旧文件。
def GetUnExistsFileName(fromFileName):
if not gp.exists(fromFileName):
return fromFileName
else:
for i in range(9999):
if not gp.Exists(fromFileName+str(i)):
return fromFileName+str(i)
break
return None
inFC = sys.argv[1]
outFC = GetUnExistsFileName(inFC+"_singlePart")
gp.MultipartToSinglepart(inFC,outFC)
gp.AddMessage('成功执行!')
# 动态生成文件名,使输出不至于覆盖原有文件
# billschen@163.com
# billschen.com
# ----------------------------------------------------------
# 时行arcgis脚本处理,不可减免要生成新的文件(如featu class,
# shape file).举个例子:运行Multipart to Singlepart 工具,
# 将生产生一个新文件,这个工具会“聪明”,产生的新文件的文件名会是一个
# “新”的文件名,使旧的文件不至于被覆盖。那个在自己写的脚本中,如何保证
# 脚本生成的文件不与旧的文件同名呢?可以应用 gp.exists 方法进行文件
# 是否存在的检查,以下是笔者做的一个小例子,读者可运行一个体验效果。
# ----------------------------------------------------------
import os, sys, string
import arcgisscripting
gp = arcgisscripting.create()
# 定义需要加载工具箱的路径名称
toolNameList =[r'ArcToolbox\Toolboxes\Data Management Tools.tbx',]
arcGisScriptPath = None
arcGisToolPath = None
try:
# 获得 arcgisscripting.dll 所在的路径,目的是为了取得ArcGis的安装路径
arcGisScriptPath = arcgisscripting.__file__
for toolName in toolNameList:
arcGisToolPath = \
arcGisScriptPath.replace( \
r'bin\arcgisscripting.dll', toolName)
gp.AddToolbox(arcGisToolPath)
except:
gp.AddMessage('无法加载工具箱'+arcGisToolPath+',请检查的你的ArcGis安装是否完整')
del gp
sys.exit()
# 定义一个函数,以获得新的文件名。
# 以更不去覆盖旧文件。
def GetUnExistsFileName(fromFileName):
if not gp.exists(fromFileName):
return fromFileName
else:
for i in range(9999):
if not gp.Exists(fromFileName+str(i)):
return fromFileName+str(i)
break
return None
inFC = sys.argv[1]
outFC = GetUnExistsFileName(inFC+"_singlePart")
gp.MultipartToSinglepart(inFC,outFC)
gp.AddMessage('成功执行!')