Select to view content in your preferred language

Add support for pathlib.Path objects to arcpy

11138
22
04-09-2020 09:20 AM
Status: In Product Plan
ScottDavis
Frequent Contributor

pathlib seems to be the preferred method for working with system paths in Python 3. We've started using it in place of `os.path` in our office recently and really like it. However, we've run into problems with using it with arcpy. For example:

workspace = pathlib.Path('C:\some path') \ 'anotherfolder' \ 'connection.sde'
with arcpy.EnvManager(workspace=workspace):
    pass‍‍‍‍‍‍

Throws this error: "RuntimeError: Object: Error in accessing environment <workspace>"

To work around this, we end up wrapping all of our Path object with str(). For example:

workspace = str(pathlib.Path('C:\some path') \ 'anotherfolder' \ 'connection.sde')
with arcpy.EnvManager(workspace=workspace):
    pass‍‍‍‍‍‍‍‍‍

It would be great if arcpy (Pro version) handled these Path objects natively!

Tags (2)
22 Comments
philnagel

Great news, thank you for sharing that update!

Ethan_Cranmer

Per the arcpy team at the Dev Summit this is releasing with 3.7. All tools will work with path objects as inputs. An env setting needs to be set for outputs.