Jerome Jabson 写道: > Hi, > > I've been trying to write a wrapper around some shells > scripts using the subprocess module. But I'm getting > errors I quite don't know how to debug. I've only been > writing Python for a few months and starting processes > are new to me. Here's my code: > > import os > import re > import subprocess > > #################### > #### Definition #### > #################### > > def proc(cmd_in): > cmd = cmd_in > os.chdir("/home/qauser/jerome") > outFile = os.path.join(os.curdir, "output.log") > outptr = file(outFile, "w") > errFile = os.path.join(os.curdir, "error.log") > errptr = file(errFile, "w") > retval = subprocess.call(cmd, 0, None, None, > outptr, errptr) > errptr.close() > outptr.close() > if not retval == 0: > errptr = file(errFile, "r") > errData = errptr.read() > errptr.close() > raise Exception("Error executing command: " + > repr(errData)) > > def setup(): > print "=== Starting Setup ===" > proc("/home/qauser/jerome/qaSetup.sh") > print "=== Setup Complete ===" > > def run_junit(): > file_in = > open("/home/qauser/automation/testdata/junit_master_file", > "r") > Could you put the contents in the junit_master_file here ? Are the first field in every line where the cmd name locates contain the full path to the command ? > match = re.compile('#+') > work_list = [] > for line in file_in: > work = line > work = work.rstrip('\n') > if match.search(work): > found = False > else: > found = True > if found == True: > work_list = work.split(',') > arg1 = work_list[0] > arg2 = work_list[1] > arg3 = work_list[2] > arg4 = work_list[3] > cmd = "/home/qauser/jerome/qaRun.sh %s %s %s > %s" > cmdstr = cmd % (arg1,arg2,arg3,arg4) > print "=== Starting JUnit Run ===" > proc(cmdstr) > print "=== JUnit Run Complete ===" > > > #################### > ###### Main ###### > #################### > > setup() > run_junit() > > The setup() def seems to work great, but the > run_junit() seems to have problems. I believe due to > the params I'm passing. Here are the errors I'm > getting: > > [EMAIL PROTECTED] automation]$ ./runJunit.py > === Starting JUnit Run === > Traceback (most recent call last): > File "/home/qauser/automation/runJunit.py", line 63, > in ? > run_junit() > File "/home/qauser/automation/runJunit.py", line 54, > in run_junit > proc(cmdstr) > File "/home/qauser/automation/runJunit.py", line 18, > in proc > retval = subprocess.call(cmd, 0, None, None, > outptr, errptr) > File > "/opt/python-2.4.3/lib/python2.4/subprocess.py", line > 412, in call > return Popen(*args, **kwargs).wait() > File > "/opt/python-2.4.3/lib/python2.4/subprocess.py", line > 542, in __init__ > errread, errwrite) > File > "/opt/python-2.4.3/lib/python2.4/subprocess.py", line > 975, in _execute_child > raise child_exception > OSError: [Errno 2] No such file or directory > > I can't seem to figure out what file or directory is > missing. > > Your help is greatly appreciated, > Jerome > > __________________________________________________ > Do You Yahoo!? > Tired of spam? Yahoo! Mail has the best spam protection around > http://mail.yahoo.com > _______________________________________________ > Tutor maillist - Tutor@python.org > http://mail.python.org/mailman/listinfo/tutor > >
_______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor