Re: Exiting os.spawnv's subroutine

2006-02-22 Thread IamIan
Strange but removing the try/except part of the second script (leaving
only the processing) removed the 2 minute lag at the end of each
subroutine.

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Exiting os.spawnv's subroutine

2006-02-21 Thread IamIan
My code is below. As a single script there is no pause at the end of
the processing as there is with using os.spawnv... I am using the
P_WAIT value, and wonder if it is responsible for the extra time at the
end of each iteration. Could it take longer for the processing to be
successful when run under os.spawnv? Is there a way to manually send
a success exit code back to os.spawnv, rather than waiting for it?
Thanks.

Main script:
# Import subprocess modules
import os, sys, win32com.client

# Define arguments for subprocess
pyPath = C:\\Python21\\python.exe
contourScript = C:\\Ian\\Python scripts\\subProcess2.py
workspace = D:\\GIS\\Test

# Get a list of IMG files in the workspace for Contouring
filenames = os.listdir(workspace)
filenames = [filename.lower()
for filename in filenames
if (filename[-4:].lower() == .img and filename[0:2] != h_ )]
for filename in filenames:

# Define filenames
print Filename is  + filename
inImg = workspace + \\ + filename
outContour50 = workspace + \\contour50_ + filename[:-4] + .shp
outContour100 = workspace + \\contour100_ + filename[:-4] +
.shp
outContour200 = workspace + \\contour200_ + filename[:-4] +
.shp
outContour500 = workspace + \\contour500_ + filename[:-4] +
.shp

# Create parameter list
parameterList = []

# First parameter is the name of the Python executable
parameterList.append('python.exe')

# Second parameter is the full path of the Python script
parameterList.append(contourScript)

# The following parameters are the arguments for the Batch script
parameterList.append(inImg)
parameterList.append(outContour50)
parameterList.append(outContour100)
parameterList.append(outContour200)
parameterList.append(outContour500)

# Run subprocess
os.spawnv(os.P_WAIT, pyPath, parameterList)

print All done!


Secondary script:
# Import system modules
import sys, win32com.client

# Create the geoprocessor object
gp = win32com.client.Dispatch(esriGeoprocessing.GpDispatch.1)

# Confirm license availability
print ArcInfo license is  + str(gp.CheckProduct(ArcInfo))
gp.SetProduct(ArcInfo)
gp.CheckOutExtension(Spatial)

# Set arguments to be passed to main script
inImg = sys.argv[1]
outContour50 = sys.argv[2]
outContour100 = sys.argv[3]
outContour200 = sys.argv[4]
outContour500 = sys.argv[5]

badImgList = []

try:
# For each IMG file, contour at 50, 100, and 200 meter intervals
gp.Contour_sa(inImg, outContour50, 50, 0, 1)
print Successfully contoured at 50 meter interval!

gp.Contour_sa(inImg, outContour100, 100, 0, 1)
print Successfully contoured at 100 meter interval!

gp.Contour_sa(inImg, outContour200, 200, 0, 1)
print Successfully contoured at 200 meter interval!

gp.Contour_sa(inImg, outContour500, 500, 0, 1)
print Successfully contoured at 500 meter interval!
except:
badImgList.append(filename)
print filename +  is no good! It's been added to the list!

-- 
http://mail.python.org/mailman/listinfo/python-list


Exiting os.spawnv's subroutine

2006-02-17 Thread IamIan
I am using os.spawnv in Python 2.1 to do some geoprocessing in a
subroutine/process. Everything works great, except when the processing
is done the subroutine just waits for a couple minutes before closing
itself and returning to the main script. I have tried using sys.exit()
and exit() but these aren't doing anything.

What is the proper way to terminate this subroutine upon completion,
rather than waiting? Thank you.

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Exiting os.spawnv's subroutine

2006-02-17 Thread Donn Cave
In article [EMAIL PROTECTED],
 IamIan [EMAIL PROTECTED] wrote:

 I am using os.spawnv in Python 2.1 to do some geoprocessing in a
 subroutine/process. Everything works great, except when the processing
 is done the subroutine just waits for a couple minutes before closing
 itself and returning to the main script. I have tried using sys.exit()
 and exit() but these aren't doing anything.
 
 What is the proper way to terminate this subroutine upon completion,
 rather than waiting? Thank you.

Your description is a little ambiguous, but my guess is your
process just isn't done when you think it is.   It's flushing
data to disk or something like that.  Or it could be something
else.  Why don't you write a sample program that works like
this, and demonstrates the problem, and then we'll know.

   Donn Cave, [EMAIL PROTECTED]
-- 
http://mail.python.org/mailman/listinfo/python-list