best way of testing a program exists before using it?

Steve Holden steve at holdenweb.com
Mon Sep 11 11:51:42 EDT 2006


Rob Wolfe wrote:
> 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
> 
Except that the fname will then have to be a ".exe" on Windows and not 
on Unix.

regards
  Steve
-- 
Steve Holden       +44 150 684 7255  +1 800 494 3119
Holden Web LLC/Ltd          http://www.holdenweb.com
Skype: holdenweb       http://holdenweb.blogspot.com
Recent Ramblings     http://del.icio.us/steve.holden




More information about the Python-list mailing list