3

Having trouble getting my code to work. Keep getting IOError that my parks.shp doesn't exist....not sure I understand what this is saying.

import arcpy

mxd = "D:\...\TravisCountyAustinTxx.mxd"

mapdoc = arcpy.mapping.MapDocument(mxd)

dataset = "D:\...\TravisCountyAustinTxx.mxd\parks.shp"

spatialref = arcpy.Describe(dataset).spatialReference

extent = arcpy.Describe(dataset).extent

for df in arcpy.mapping.ListDataFrames(mapdoc):

      df.spatialReference = spatialref
      df.panToExtent()
      df.scale = 15000
      print "\nData frame " + df.name + " contains the following layers:"
      lyrlist = arcpy.mapping.ListLayers(mapdoc, "", "", df)
      for lyr in lyrlist:
          print lyr.names 
mapdoc.save() 
del mapdoc

Full error message:

File "D:\Python27\ArcGIS10.2\Lib\site-packages\Pythonwin\pywin\framework\scriptutils.py", line 325, in RunScript exec codeObject in main.dict File "D:\CLASSES\Debugging_andErrorHandlingLab\Scripts\Mod3_Script2_Template (2).py", line 12, in spatialref = arcpy.Describe(dataset).spatialReference File "C:\Program Files (x86)\ArcGIS\Desktop10.2\arcpy\arcpy__init__.py", line 1234, in Describe return gp.describe(value) File "C:\Program Files (x86)\ArcGIS\Desktop10.2\arcpy\arcpy\geoprocessing_base.py", line 374, in describe self._gp.Describe(*gp_fixargs(args, True))) IOError: "D:\CLASSES\Debugging_andErrorHandlingLab\Data\TravisCountyAustinTxx.mxd\parks.shp" does not exist

  • Please review the code, since the last line seems mashed up – Vince Jul 19 '16 at 14:49
  • 3
    Your problem is likely the failure to either escape backslashes or to use "raw" mode (prepend an 'r' before the quote). So Python is correct -- the file "\...\TravisCountyAustinTxx.mxd\parks.shp" does not exist in directory "D:" – Vince Jul 19 '16 at 14:52
  • Code blocks must have FOUR leading spaces. There's a {} button to format it for you. – Vince Jul 19 '16 at 14:53
  • I tried the use r"D......shp" as well. No luck. The full error message is to follow. – Petunia311 Jul 19 '16 at 14:56
  • 1
    Thank you for including the full error. Now look at what it says. An MXD is a file. No shapefile will be inside it as if it were a directory. – Vince Jul 19 '16 at 15:01
2

LOTS OF ERRORS were fixed --.spatialRefernce (no good) .extent(no good), lyrlist, had too many arguments--FIXED

import arcpy
mxd = r"D:\CLASSES\Debugging_andErrorHandlingLab\Data\TravisCountyAustinTxx.mxd"
mapdoc = arcpy.mapping.MapDocument(mxd)
dataset = r"D:\CLASSES\Debugging_andErrorHandlingLab\Data\TravisCountyAustinTxx.mxd"
spatialref = arcpy.Describe(dataset)
extent = arcpy.Describe(dataset)        df.scale = 15000
    print "\nData frame " + df.name + " contains the following layers:"
    lyrlist = arcpy.mapping.ListLayers(mapdoc, "", df)
for lyr in lyrlist:
    print lyr.name
for df in arcpy.mapping.ListDataFrames(mapdoc):
    df.panToExtent(df.extent)

mapdoc.save()
del mapdoc
2

Locate your shapefile.

The error message says it's in:

"D:\CLASSES\Debugging_andErrorHandlingLab\Data\TravisCountyAustinTxx.mxd\parks.shp"

The .MXD can't be a folder, so it's definitely not there.

Perhaps it's in the same folder as the MXD:

dataset = r"D:\CLASSES\Debugging_andErrorHandlingLab\Data\parks.shp"

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.