Arcpy批量导出shp文件属性表——使用arcpy.da.SearchCursor函数

本文介绍了一种使用Python批量从多个文件夹内的shp文件中提取温度数据的方法,并将其转换为CSV格式进行存储。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、问题描述

我有10个文件夹,每一个文件夹有18个shp文件(温度数据),需要提取每个shp文件的温度数据,即下图属性表中RASTERVALU列。

  

 2、上代码

#coding:utf-8
import arcpy
from arcpy import env
import pandas as pd

#文件名list
file_name_list = ["avr_mon.shp","avr_year.shp",
                  "max_mon.shp","max_year.shp",
                  "min_mon.shp","min_year.shp",
                  "c_avr.shp","c_max.shp","c_min.shp",
                  "x_avr.shp","x_max.shp","x_min.shp",
                  "q_avr.shp","q_max.shp","q_min.shp",
                  "d_avr.shp","d_max.shp","d_min.shp",]#18个shp文件

#循环大环境路径(10个文件夹)
for num in range(1,11):
    print(num)
    env.workspace= "D:\\data\\"+str(num)#路径根据需求自行修改
    #循环文件名
    for file in file_name_list:
        print(file)
        cur=arcpy.da.SearchCursor(file,"RASTERVALU")#提取RASTERVALU列数据

        #search属性表数据
        t_list = []

        for row in cur:#cursor是按照一行一行顺序读取数据
            t = row[0]#上面cursor只寻找一列数据,因此是第0列
            t_list.append(t)
            
        #list转df
        df = pd.DataFrame(t_list)
            

        #导出df为csv格式
        df.to_csv(env.workspace+"\\"+file.split(".")[0]+".csv")
            

3、结果

 

 撒花~~

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值