地理国情监测,arcpy将文件夹多个gdb的要素数据集Dataset下的要素类featureClass,使用FeatureClassToShapefile_conversion转换成shapefile

55 篇文章 5 订阅
21 篇文章 7 订阅

地理国情监测,arcpy将文件夹多个gdb的要素数据集Dataset下的要素类featureClass,使用FeatureClassToShapefile_conversion转换成shapefile文件。

下载链接:FeatureClassToShapefile实例arcpy脚本

coding = 'utf-8'
import os
import arcpy
#Author By AHCH_yangdebin

gdblist=[] #新建空白列表 
file_dir=r"F:\test" #输入待合并GDB数据库所在的文件夹的路径
dirlist=os.listdir(file_dir) #获取 D:\\Desktop 下一层级目录的路径
for dir in dirlist: #循环dirlist列表
    if ".gdb" in dir: #如果路径名称中包含 .gdb 字符串
        gdblist.append(file_dir+"\\"+dir) #将待合并GDB数据库的路径添加到gdblist列表中
print(gdblist)
print("gdb的个数是:" +str(len(gdblist)))

outpath=r"F:\result" #合并后汇总数据库所在的文件夹
#fileName=""

for gdb in gdblist: #循环待合并GDB数据库
    #print(gdb) #打印循环到的某个数据库的路径
    arcpy.env.workspace = gdb #将循环到的数据库作为工作空间

    fileName = outpath+ "\\" + (gdb.split(".gdb")[0]).split("\\")[-1]
    print(fileName)  # 打印要素类名称便于查看进度
    datasets = arcpy.ListDatasets() #列出该数据库包含的要素数据集
    
    if(len(datasets)!=0):
        for ds in datasets: #循环要素数据集
            print("------" + ds)  # 打印该要素数据集的名称
            fcs=arcpy.ListFeatureClasses(feature_dataset=ds) #获取该要素数据集下的所有要素类

            filePath= fileName + "\\" + str(ds)
            print(filePath)
            for fc in fcs: #循环该要素数据集下的所有要素类
                print("-------" + fc)  # 打印要素类名称便于查看进度
                if not os.path.exists(filePath):
                    os.makedirs(filePath)
                arcpy.FeatureClassToShapefile_conversion(fc,filePath) #复制该要素类

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

木易GIS

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值