I'm in the process of migrating my stand-alone python scripts from ArcMap to ArcGIS Pro. Using PyScripter as an IDE, I was able to successfully set up my environment. I'm using Python 3.6.2 that came with Pro 2.1.
I want to simply list the files in the workspace folder. Line 3 causes an OSError.
import arcpy, os aprx = arcpy.mp.ArcGISProject(r"Path\to\folder") #list the APRXs of the workspace folder for root, dirs, files, in os.walk(aprx): for f in files: if f.endswith(".aprx"): mxd = arcpy.mp.ArcGISProject(os.path.join(root, f)) print("current map being checked is " + f)
How do I create a variable for the workspace folder for Pro? Here's how I would've done it for ArcMap:
ws = arcpy.env.workspace = r'path\to\folder'
It looks like you should reference a aprx file, not directory. For example:
aprx = arcpy.mp.ArcGISProject(r"C:\Projects\blank.aprx")
Also, os.walk doesn't specifically have anything to do with ArcGIS or arcpy. Pass it a plain old directory string. For example:
that returns a project
from arcpy import mp as MAP aprx = MAP.ArcGISProject('c:/Projects/YosemiteNP/Yosemite.aprx') #or from arcpy import mp aprx = mp.ArcGISProject('c:/Projects/YosemiteNP/Yosemite.aprx') # ---- to start in that folder "/".join(aprx.split("/")[:-1]) 'c:/Projects/YosemiteNP'
Thanks for the help.
Apologies if I wasn't too clear. I wanted to list any and all projects (APRXs) in a folder. Sometimes spelling it out answers your own question.
It looks like you can use the same environment variable as you would with ArcPy in ArcMap. This worked:
ws = arcpy.env.workspace = r"path\to\folder"
import arcpy, os ws = arcpy.env.workspace = r"path\to\folder" #list the APRXs of the workspace folder for root, dirs, files, in os.walk(ws): for f in files: if f.endswith(".aprx"): print("current project being checked is " + f)