Hi Folks,
In ArcGIS Pro 2.4.0, I noticed some unexpected behavior with forward slashes in data paths with code run in the Python console embedded in Pro.
In short, if backslashes are used, the code works:
d = "C:\gispy\data\ch02\park.shp"
proj = arcpy.mp.ArcGISProject("CURRENT")
m = proj.listMaps()[0]
m.addDataFromPath(d)
<arcpy._mp.Layer object at 0x00000287876AE7F0>
# Hurray! Data added to map.
But if forward slashes are used in the data path, it throws a RuntimError and fails to add data to the map:
d2 = "C:/gispy/data/ch02/park.shp"
m.addDataFromPath(d2)
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "c:\program files\arcgis\pro\Resources\arcpy\arcpy\_mp.py", line 1531, in addDataFromPath
return convertArcObjectToPythonObject(self._arc_object.addDataFromPath(*gp_fixargs((data_path,), True)))
RuntimeError
I could not find a bug report on this. Are there plans to address this or is this intentional behavior? If so, why?
If it was found it is several versions old and a backport won't be provided. You could update to a newer version of arcgis pro to be safe.
If you want, you can go through the release notes for prior versions to see if it was reported as a bug and fixed.
Release notes for ArcGIS Pro 2.6—ArcGIS Pro | Documentation
The path with forward slashes is python valid, however, to play it safe with back slash paths, always use raw encoding
good = r"C:\temp\data\ch02\park.shp" # ---- a little `r` goes a long way
bad = "C:\temp\data\ch02\park.shp" # ---- no `r`
# ---- test prints
print(good)
C:\temp\data\ch02\park.shp
print(bad)
C: emp\data\ch02\park.shp # ---- a tab inserted
# ---- abject total failure
ugly = "C:\temp\data\ch02\x.shp"
File "<ipython-input-11-6fa7135b60c0>", line 1
ugly = "C:\temp\data\ch02\x.shp"
^
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 17-18: truncated \xXX escape
Hi Dan, Great to hear from you. Somehow, I always encounter you when researching arcpy issues online. I feel like I know you. 🙂 Yes, I'm familiar with the raw string approach and the perils of escape sequences. This is why I found it even more frustrating that Pro is not handling forward slashes correctly.
NIM000967: Geoprocessing tools do not recognize a layer name wi.. (esri.com) but you weren't using geoprocessing tools
Good find! Probably the same underlying issue though.
This begs a few questions...This was submitted 14 years ago and the status is "Not in Current Product Plan"? What could this mean? Maybe a new bug report needs to be submitted. Can any old shmo create a bug report? Were they really working on ArcGIS Pro in 2006? Forward slashes have never been a problem before in Desktop, why start now?
Laura....
I think any shmo can... however, I have never had any problem with forward slashes.
My default is "raw" encoding (using the little 'r' in scripts).
In geoprocessing tools, I don't type... I navigate and select files and let arc* wizardry do its work.
I would investigate further and see whether other paths fail with forward slashes. I am wondering if it just may be that particular folder, or something in the mp module (which I rarely use).
Give it shot and if it is reproduceable, then file a report ... however, the first thing that will be suggested is to upgrade to the latest version (2.6.3)
Good luck!