This content has been marked as final. Show 4 replies
It looks like the target files are somewhere on your network (to wit: a letter mapped drive and not http)
Runs a search cursor through the table, and pick up each path string in turn.
pass that path string to
and if the result is False, write the path (or the OID, or both) to a list.
if not os.path.exists(pathString): brokeList.append(theOID)
what am I missing here to write the results to an text?
import os import arcgisscripting # Create the geoprocessor object gp = arcgisscripting.create(9.3) #Create search cursor shp = "C:\Dan\search_cursor.shp" rows = gp.SearchCursor(shp) row = rows.Next() fields = gp.ListFields(shp) if not os.path.exists(shp): brokeList.append(path,"demo.txt")
Well, append is a method of adding to a python list, not a file.
You know the shp exists, you want to test the path in the record (which you never access)
Try this. It has no errorchecking, and you should replace "<<WHATEVER THE PATH FIELDNAME IS>>" with the field name of your field with the paths.
import os import arcgisscripting # Create the geoprocessor object gp = arcgisscripting.create(9.3) shp = r"C:\Dan\search_cursor.shp" brokeList =  # <- you need a list #Create search cursor rows = gp.SearchCursor(shp) row = rows.Next() while row: # grab the item values you are interested in pathString = row.<<WHATEVER THE PATH FIELDNAME IS>> theFID = row.FID # see if the link path is valid if not os.path.exists(pathString): # append the FID of bad links to the list brokeList.append(theFID) row = rows.Next() if len(brokeList) > 0: print "Broken links found!" # write the list to a file txt = open(r"C:\Dan\demo.txt", 'w') for broke in brokeList: txt.write(str(broke) + "\n") txt.close() print 'DONE'
Mark, thanks for your answer this was very helpfull.