best way of testing a program exists before using it?

Rob Wolfe blue99 at interia.pl
Mon Sep 11 17:41:30 CEST 2006


Hari Sekhon wrote:
> I am writing a wrapper to a binary command to run it and then do
> something with the xml output from it.
>
> What is the best way of making sure that the command is installed on the
> system before I try to execute it, like the python equivalent of the
> unix command "which"?
>
> Otherwise I'd have to do something like:
>
> if os.system('which somecommand') != 0:
>     print "you don't have %s installed" % somecommand
>     sys.exit(1)
>
> I know that isn't portable which is why a python solution would be
> better (although this will run on unix anyway, but it'd be nice if it
> ran on windows too).

IMHO this is pretty portable:

>>> def is_on_path(fname):
...     for p in os.environ['PATH'].split(os.pathsep):
...             if os.path.isfile(os.path.join(p, fname)):
...                     return True
...     return False

HTH,
Rob




More information about the Python-list mailing list