By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
443,768 Members | 2,054 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 443,768 IT Pros & Developers. It's quick & easy.

Call script which accepts com. line par. from another script anderror control

P: n/a
Hi,

I would really appreciate help on this. I have a script (s1.py) which I
would like to call from another script (s2.py). No problem there.

The first issue is that s1.py has a command line parser which I would like
to keep but instead of fetching the information from the command line, I
would like to direct the parser to get the information from a variable so i
can call sp1.py from sp2.py and give it an expression to parse that normally
would go on the command line. To make things clearer:

s1.py (currently) --------------------------------------------

def ...
def ...

cmdl_parser = optparse.OptionParser..
cmdl_parser.add_option..

(cmdl_opts, cmdl_args) = cmdl_parser.parse_args()

-----------------------------------------------------------------

sp1.py (the one I would like)
---------------------------------------------------------------------------------------------

def ...
def ...

def MAIN(expression2parse) <----- add a main so can call
from other script
cmdl_parser = optparse.OptionParser..
cmdl_parser.add_option..

(cmdl_opts, cmdl_args) = cmdl_parser.parse_args()
<---------------------------do this but on "expression2parse"

-----------------------------------------------------------------------------------------------------------------------------------
The second issue is error control. In case of an error in sp1.py I want the
error handling to happen at the level of sp2.py so I can better manage
things. Does anyone know how this could be done. Essentially return control
to sp2.py?

I am new to Python (5 hours) but have extensive programming in C++. I would
really appreciate your input.

Thanks!

Kakeez

__________________________________________________ _______________
Fight Allergies With Live Search
http://search.live.com/results.aspx?...ca&FORM=SERNEP

May 24 '07 #1
Share this Question
Share on Google+
1 Reply


P: n/a
Karim Ali wrote:
def MAIN(expression2parse) <----- add a main so can
call from other script
Of course you don't mean you want another python interpreter to fire up
and run the other script?

Here is an example of the way to do what you are suggesting:

# mod1.py

def doit(param):
if not param % 37:
raise ValueError, 'Why u want to do dat?'
else:
print 'All right!'
return 'Value is: %s' % param

# end of mod1.py
# mod2.py

import mod1

print mod1.doit(20)
print
print mod1.doit(30)
print
try:
print mod1.doit(37)
except ValueError:
print 'Gracefully handling 37....'
print
print mod1.doit(37)

# end of mod2
James
May 24 '07 #2

This discussion thread is closed

Replies have been disabled for this discussion.