Running Python scripts from the command line
Up to this point in the book, all your Python scripts have been run as either script tools in ArcGIS or from a Python development environment. The Windows command prompt provides yet another way of executing your Python scripts. The command prompt is used primarily to execute scripts that will be run as a part of a batch file and/or as scheduled tasks.
Getting ready
There are a couple of advantages to running Python geoprocessing scripts from the command prompt. These scripts can be scheduled to batch process your data during off hours for more efficient processing, and they are easier to debug due to the built-in Python error handling and debugging capabilities.
In this recipe, you will learn how to use the Windows command prompt to execute a Python script. You will need administrative rights to complete this recipe, so you may need to contact your information technology support group to make this change.
How to do it…
Follow these steps to learn how to run a script from the Windows command prompt:
In Windows, go to Start | All Programs | Accessories | Command Prompt to display a window similar to the following screenshot:
The window will display the current directory. Your directory will differ to some degree. Let's change to the directory for this appendix.
Type
cd c:\ArcpyBook\Appendix1
.Type dir to see a listing of the files and sub-directories. You should see only a single Python file called
ListFields.py
:You will want to make sure that the Python interpreter can be run from anywhere in your directory structure. Go to Start | All Programs | Accessories | System Tools | Control Panel.
Click on System and Security.
Click on System.
Click on Advanced system settings.
In the System Properties dialog box, select the Advanced tab and then the Environment Variables button as shown in the following screenshot:
Find the Path system variable seen in the screenshot below and click on Edit.
Examine the entire text string for the directory
c:\Python27\ArcGIS10.1
. If the text string isn't found, add it to the end. Make sure that you add a semi-colon before adding the path. Now, when you typepython
in the command prompt, it will look through each of the directories in the Path system variable, checking for an executable calledpython.exe
.Click on OK to dismiss the Edit System Variable dialog box.
Click on OK to dismiss the Environment Variables dialog box.
Click on OK to dismiss the System Properties dialog box.
Return to the command prompt.
Type
python ListFields.py
. This will run theListFields.py
script. After a brief delay, you should see the following output:
How it works…
The ListFields.py
script provided for you in this recipe is a simple script that lists the attribute fields for the Burglaries_2009.shp
file. The workspace and shapefile name are hardcoded in the script. Typing python
followed by the name of the script, which is ListFields.py
in this
case, triggered the execution of a script using the Python interpreter. As I mentioned, the workspace and shapefile name were hardcoded in this script. In the next recipe, you will learn how to pass in arguments to the script, so that you can remove the hardcoding and make your script more flexible.