(十六)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

You may also like...