(十六)arcpy开发&利用arcpy在arcgis中创建gdb文件
本次我们学习的是如利用arcgis提供的python接口arcpy在arcgis中创建gdb文件。在代码中,多处利用检查机制,首先检查路径传入的路径是否存在,如果传入的需要创建的gdb文件已经存在,那么代码会说明已经存在了。当路径已经创建好后,接下来要创建的gdb文件检查是否创建好了。接下来我们看一下实现的具体代码。
#coding=utf-8
import arcpy
import os
import logs
import shutil
import socket
logger = logs.ArcLogger()
def checkFileGDBIntegrity(path):
if os.path.exists(path) or path == 'in_memory':
logger.p5("GDB folder: OK,", )
if arcpy.Describe(path).dataType in ['Workspace', 'Folder', 'FeatureDataset', 'FileSystem']:
logger.p5("%s integrity: OK" % arcpy.Describe(path).dataType)
return True
else:
logger.p3("路径是不真实的、路径出现了问题")
return False
else:
logger.p3("路径 %s 不存在." % path)
return False
def newFileGDB(blankFileGDB, path, name):
if not name.endswith('.gdb'):
name = name + '.gdb'
logger.p5("Creating GDB %s in\n %s" % (name, path))
src = blankFileGDB
dest = os.path.join(path,name)
if os.path.exists(dest):
logger.p3("File GDB %s already exists" % dest)
return False
if socket.gethostname().upper() == 'FLOPSY':
# 由于未知原因, 创建GDBFile可能出现问题
#从空的GDB文件中创建
if os.path.exists(blankFileGDB):
logger.p5("Copying over the blank fgdb...")
shutil.copytree(src,dest,ignore=shutil.ignore_patterns('*.lock'))
else:
logger.p5("No empty template GDB found!")
return False
else:
arcpy.AddMessage("Creating file GDB: %s" % dest)
arcpy.CreateFileGDB_management(path,name)
# 确定GDB文件已经创建好了
if checkFileGDBIntegrity(dest):
arcpy.AddMessage("GDB created OK.")
return True
else:
logger.p2("Problem creating GDB!")
return False
blankFileGDB = os.path.join(os.environ['SYSTEMROOT'], 'test.gdb')
newFileGDB(blankFileGDB,"C:\\Users\\qin\\Desktop\\111","test");
最后创建的gdb文件如下所示。
更多内容,请关注公众号
转载自:https://blog.csdn.net/u010608964/article/details/87551260