基於ArcPy實現批量備份及刪除SDE資料表

2021-10-06 13:47:07 字數 1549 閱讀 7802

1)批量的操作sde資料庫表

2)保險起見操作前先備份

3)操作遵循一定的規則

1)查詢sde資料庫中表名的以sde.hb_01、sde.hb_02開頭的表

2)將查詢到的表備份為shp檔案

3)查詢每給表中滿足固定條件的行,然後刪除

4)如果有異常,輸出異常資訊

import arcpy

import os,sys,time

sdeconnstr =

'database connections/sde.sde'

bakpath = r'd:\gisdatabak'

if name ==

'__main__'

: arcpy.env.workspace = sdeconnstr

tblist = arcpy.listfeatureclasses()if

nottype

(tblist)

:return

try:

#建立備份目錄

date = time.strftime(r'%y%m%d'

) bakpath = os.path.join(bakpath,date)

if(os.path.exists(bakpath)

)#遍歷sde圖層

for sdelayer in tblist:

#刪除資料

if(sdelayer.startswith(

'sde.hb_01')or

(sdelayer.startswith(

'sde.hb_02'))

:#先備份

bakpath = os.path.join(bakpath, sdelayer +

'_bak.shp'

) arcpy.copyfeatures_management(sdelayer,exp)

#查詢 sqlexpstr =

"objcode like '470846%'"

arcpy.selectlayerbyattribute_management(sdelayer,

"new_selection"

, sqlexpstr)

#刪除選擇行

count =

int(arcpy.getcount_management(sdelayer)

.getoutput(0)

)if count>0:

arcpy.deleterows_management(

)except exception as e:

import traceback

import sys

tb = sys.exc_info()[

2]print

("line "

.format

(tb.tb_lineno)

)print

(e.message)

可以以此為基礎,調整操作方法,執行其它對sde資料庫的批量操作

基於ThinkPHP實現批量刪除

廢話不多說,先上效果圖 html布局 基於bootstrap 留言列表 j ascript window.history.back 返回 j ascript 刪除 id名稱 郵箱內容 日期時間 操作js指令碼處理 使用ajax技術 首先判斷有沒有選中的值,如果沒有則提示 如果有,則傳遞到伺服器端處理...

基於arcpy實現空間資料聚類,kmeans

並不能直接進行空間資料的聚類,原理是讀取要素的x,y座標來進行聚類,然後將聚類中心儲存為空間資料以達到效果 encoding utf 8 from sklearn.cluster import kmeans import numpy as np import arcpy import pandas ...

Python 基於Python實現批量建立目錄

基於python實現批量建立目錄 by 授客qq 1033553122 測試環境 python 版本 python 2.7 實踐 usr bin env python coding utf 8 author shouke import os class publictools def init se...