Arcpy—updateCursor更新和刪除字段數據


 1 # -*- coding: utf-8 -*-
 2 import arcpy
 3 
 4 arcpy.env.workspace = "F:\ArcpyBook\Ch8\WildfireData\WildlandFires.mdb"  #S設置工作空間,這里是shp所在的位置
 5 
 6 f = open(r"F:\ArcpyBook\Ch8\WildfireData\NorthAmericaWildfires_2007275.txt",'r')
 7 lsFires = f.readlines()
 8 try:
 9     arcpy.AddField_management("FireIncidents","CONFID_RATING","TEXT","10")
10     with arcpy.da.UpdateCursor('FireIncidents',('CONFIDENCEVALUE','CONFID_RATING')) as cursor:
11         cntr = 1
12         for row in cursor:
13             if row[0] < 40:
14                 row[1] = 'POOR'
15             elif row[0] > 40 and row[0] < 60:
16                 row[1] = 'FIRE'
17             elif row[0] > 60 and row[0] < 85:
18                 row[1] = 'GOOD'
19             else:
20                 row[1] = 'EXCELLENT'
21             cursor.updateRow(row)    #有點類似於sql數據庫的commit()
22             print("Recode number "+str(cntr)+"update")
23             cntr += 1
24 except Exception as e:
25     print(e)

 

刪除行

# -*- coding: utf-8 -*-
import arcpy

arcpy.env.workspace = "F:\ArcpyBook\Ch8\WildfireData\WildlandFires.mdb"  #S設置工作空間,這里是shp所在的位置

f = open(r"F:\ArcpyBook\Ch8\WildfireData\NorthAmericaWildfires_2007275.txt",'r')
lsFires = f.readlines()
try:
    arcpy.AddField_management("FireIncidents","CONFID_RATING","TEXT","10")
    with arcpy.da.UpdateCursor('FireIncidents',['CONFID_RATING'],'[CONFID_RATING]=\'POOR\'') as cursor:
        #這里第三個參數'[CONFID_RATING]=\'POOR\''是使用了where字句限制了返回內容,其實就是一個sql查詢語句
        #因為是在個人地理數據庫中所以是[CONFID_RATING]而不是“CONFID_RATING”,
        #在shapfile文件、文件地理數據庫和ArcSDE地理數據庫中是使用雙引號將字段名給引起來,但是在個人地理數據庫中
        #是使用[]將字段名給括起來,這點需要注意。諸如此類的用法還有通配符,詳見《基於ArcGIS的python編程秘籍》p152-p153
        cntr = 1
        for row in cursor:
            cursor.deleteRow()
            print("Recode number "+str(cntr)+"deleted")
            cntr += 1
except Exception as e:
    print(e)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM