Hello all - I'm new to the world of Python as I am a GIS guy who would like to broaden his horizons. I have a question about a script that we've been working on: The purpose of the code is to *Syncronize SDE DropBox with Regulatory Project working files.
I am looking for where the script dumps the domain list to a table and loops through the table? Is It necessary? Seems like you should be able to simply loop through the domain list. I was just trying to see if there was a more straitforward way. Thanks The script is as follows:* ** # Create the Geoprocessor import sys, string, os, arcgisscripting, shutil, time gp = arcgisscripting.create() # Jim V testing # Allow output to overwrite gp.OverwriteOutput = 1 gp.AddToolbox("C://Program Files//ArcGIS//ArcToolbox//Toolboxes//Data Management Tools.tbx") #---create a logging file named "YYYYMMDD HH_MM_QualityControlLog.txt" theTime = time.strftime('%Y%m%d %H_%M') #logfilename = "H:\\Development\\Python\\" + theTime + "_PODsQAQCLog.txt" logfilename = "L:\\SharedData\\Denver\\Regulatory\\GIS\\Powder_River_Basin\\Pipeline\\QAQC_Scripts\\" + theTime + "_PODsQAQCLog.txt" log = open(logfilename,'w') log.write(time.ctime() + "\n") print time.ctime() THE_WORKSPACE = os.path.normpath("L:/SharedData/Denver/Regulatory/GIS/Powder_River_Basin") + "\\" #REAL MODE LINE #THE_WORKSPACE = os.path.normpath("H:/Development/testdata") + "\\" #TEST MODE LINE log.write("THE_WORKSPACE IS " + THE_WORKSPACE + "\n") print "THE_WORKSPACE IS " + THE_WORKSPACE P_CODE = "P_CODE" #Create table of valid P_CODEs and convert to List gp.DomainToTable_management(r"L:\SharedData\Denver\Regulatory\GIS\Powder_River_Basin\GIS_Data\RMP_Current_Geodatabase\rmp_2_5.mdb", \ "regulatory_p_code", r"L:\SharedData\Denver\Regulatory\GIS\Powder_River_Basin\Pipeline\QAQC_Scripts\test.mdb\code_table", \ "pcode", "pdesc", "") #searchRows = gp.searchCursor(r"H:\Development\temp\test.mdb\code_table") searchRows = gp.searchCursor(r"L:\SharedData\Denver\Regulatory\GIS\Powder_River_Basin\Pipeline\QAQC_Scripts\test.mdb\code_table") searchRow = searchRows.next() domainList = [] while searchRow: domainList.append(searchRow.pcode) searchRow = searchRows.next() #print domainList try: #Get Workspaces from text file #for line in open("H:/Development/testdata/PRB_POD_Paths.txt", 'r'): #REAL MODE LINE for line in open("L:/SharedData/Denver/Regulatory/GIS/Powder_River_Basin/Pipeline/QAQC_Scripts/PRB_POD_Paths.txt", 'r'): #REAL MODE LINE #for line in open("H:/Development/testdata/workspaces.txt", 'r'): #TEST MODE LINE if not line: break line = line.strip() if not line.startswith("#"): # skip lines that start with # ws, P = line.split("RMP_2_5_",1) #parse line to get path and P_CODE log.write(" " + "\n") log.write(" " + "\n") log.write(P + "\n") print " " print P src = THE_WORKSPACE + line #defines each workspace path #If the Geodatabase exists, perform the operations if os.path.exists(src): #Archive Geodatabase before running script log.write("The Geodatabase exists " + src + "\n") print "The Geodatabase exists " + src archiveFolder = THE_WORKSPACE + ws + "Archive" + "\\" + "RMP_2_5_" + P log.write("archiveFolder is " + archiveFolder + "\n") print "archiveFolder is " + archiveFolder shutil.copy(src, archiveFolder) #Archive the Geodatabase #Set workspace and variables gp.workspace = src log.write(gp.workspace + "\n") print gp.workspace P_Value = (P.strip(".mdb")) #Valitate P_Code value against Domain list if P_Value in domainList: log.write("P_Code is valid: " + P_Value + "\n") print "P_Code is valid: " + P_Value # List all feature classes in feature datasets fdss = gp.ListDatasets("","") fds = fdss.Next() while fds: fcs = gp.ListFeatureClasses("*","",fds) fc = fcs.Next() while fc: gp.CalculateField_management(fc, P_CODE, "'" + P_Value + "'", "PYTHON") #Calc P_Code gp.RepairGeometry(fc, r"L:\SharedData\Denver\Regulatory\GIS\Powder_River_Basin\Pipeline\QAQC_Scripts\outy.shp") fc = fcs.Next() print fc fds = fdss.Next() #Copy the Geodatabase to the SDE InBox sdeInbox = "S:/Production/DropBox/InBox" #REAL MODE LINE #sdeInbox = "H:/Development/testInbox" #TEST MODE LINE log.write("sdeInbox is " + sdeInbox + "\n") print "sdeInbox is " + sdeInbox shutil.copy(src, sdeInbox) #Copy Geodatabase to SDE Inbox else: log.write("P_Code is NOT valid: " + P_Value + "\n") print "P_Code is NOT valid: " + P_Value else: log.write("The Geodatabase does not exist " + src + "\n") print "The Geodatabase does not exist " + src except: # If an error occurred, print the messages returned by the tool log.write(gp.GetMessages() + "\n") print gp.GetMessages() log.write(time.ctime() + "\n") log.write("FINISHED" + "\n") os.startfile("L:\\SharedData\\Denver\\Regulatory\\GIS\\Powder_River_Basin\\Pipeline\\QAQC_Scripts\\") log.close() print "FINISHED" print time.ctime()
-- http://mail.python.org/mailman/listinfo/python-list