Thank you for the comments, that's very helpful.

I have 56 shapefiles, and I need to calculate area for each one.
Therefore, could you explain the first method clearer: "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:" ?

I'd appreciate any help you might give me.

Jen

On May 17, 9:50 pm, Dylan Hettinger <[email protected]> wrote:
> 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