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)