best way of testing a program exists before using it?
Tim Williams
tim at tdw.net
Mon Sep 11 12:34:45 EDT 2006
On 11/09/06, Hari Sekhon <hpsekhon at googlemail.com> wrote:
> Tim Williams wrote:
> > On 11/09/06, Hari Sekhon <hpsekhon at googlemail.com> wrote:
> >>
> >> Steve Holden wrote:
> >> Hari Sekhon wrote:
> >>
> >>
> >> The easiest way to test whether the command will run is to try and run
> >> it. If the program doesn't exist then you'll get an exception, which you
> >> can catch. Otherwise you'll be stuck with non-portable mechanisms for
> >> each platform anyway ...
> >>
> >> regards
> >> Steve
> >>
> >>
> >> Yeah, this occurred to me just after I sent the mail, but I don't
> >> really
> >> want to run the program because it will go off and do some work and take
> >> time to come back. If there is a better way then that would be great. I
> >> can't think of anything other than what you have suggested with a
> >> message
> >> saying that the program wasn't found in the path which would be the most
> >> appropriate error since the path could also be wrong.
> >
> >
> > If you run your wrapper and the program exists then you don't have to
> > test for it, so the overall process is quicker and cleaner than
> > testing-for *then* running the program
> >
> > If you run your wrapper and the program doesn't exist, then you have
> > performed your "if exists" test without extra code and with very
> > little processing, and the raised exception will lead you nicely into
> > your "not exists" scenario.
> >
> > try:
> > run_somecommand
> > except:
> > print "you don't have %s installed" % somecommand
> >
> >
> > HTH :)
> >
> The down side to that is the program has to be run which consumes time
> and slows the script down a fair bit (as well as outputting garbage to
> the screen)
>
Sorry, I don't follow!!
If the program doesn't exist how can you run it ???
If the program does exist then running is what you wanted it to do
anyway and you've saved doing a test for it first.
:)
--
Tim Williams
More information about the Python-list
mailing list