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

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Karim Ali

    #1

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

    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.Option Parser..
    cmdl_parser.add _option..

    (cmdl_opts, cmdl_args) = cmdl_parser.par se_args()

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

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

    def ...
    def ...

    def MAIN(expression 2parse) <----- add a main so can call
    from other script
    cmdl_parser = optparse.Option Parser..
    cmdl_parser.add _option..

    (cmdl_opts, cmdl_args) = cmdl_parser.par se_args()
    <---------------------------do this but on "expression2par se"

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


    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
    Intelligent search from Bing makes it easier to quickly find what you’re looking for and rewards you.


  • James Stroud

    #2
    Re: Call script which accepts com. line par. from another scriptand error control

    Karim Ali wrote:
    def MAIN(expression 2parse) <----- 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

    Comment

    Working...