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 > > >
