sys.argv is a Python list of arguments. The first value, sys.argv[0], is
always the current script. You're probably running this script from the
command line (or an editor like IDLE) without giving it a shapefile as an
argument. To use the script as is, run it from the command line with the
full path to the shapefile you want to calculate the area, e.g. from the
command line:

> C:\python26\python.exe D:\MA_resevior\LU_PL_Exportcoef.py
C:\path\to\your\shapefile.shp

You could also change the line:
 inputFC = sys.argv[1]
to:
inputFC = "C:\\path\\to\\your\\shapefile.shp"

This way it won't expect an argument, but you'll have to change that line
every time you want to use a different shapefile.

dylan

On Mon, May 17, 2010 at 6:57 PM, Jen <[email protected]> wrote:

> There is some existing code for calculating shapefile area with
> python, as I listed below.
>
> import arcgisscripting
> import sys
>
> gp = arcgisscripting.create()
>
> # Set a default workspace
> gp.workspace = "d:/MA_resevior"
>
> # An input polygon feature class
> inputFC = sys.argv[1]
>
> gp.AddField_management(inputFC, "new_area", "DOUBLE")
> gp.CalculateField_management(inputFC, "new_area", "float(!
> SHAPE.AREA!)", "PYTHON")
>
>
> However, python shows error message:
>
> Traceback (most recent call last):
>  File "D:\MA_resevior\LU_PL_Exportcoef.py", line 16, in <module>
>    inputFC = sys.argv[1]
> IndexError: list index out of range
>
> If I change sys.argv[1] to sys.argv[0], and print sys.argv[0], it
> shows D:\MA_resevior\LU_PL_Exportcoef.py, which is my python code
> file. It shows error message:
>
> Traceback (most recent call last):
>  File "D:\MA_resevior\subbasin_LU\LU_PL_Exportcoef.py", line 24, in
> <module>
>    gp.AddField_management(inputFC, "new_area", "DOUBLE")
> ExecuteError: Failed to execute. Parameters are not valid.
> ERROR 000732: Input Table: Dataset D:\MA_resevoir\LU_PL_Exportcoef.py
> does not exist or is not supported
> Failed to execute (AddField).
>
> I'd appreciate any help you might give me.
>
> Jen
>
>
>

Reply via email to