best way of testing a program exists before using it?

Hari Sekhon hpsekhon at
Mon Sep 11 17:39:05 CEST 2006

Steve Holden 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).
> 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.

Perhaps I'll just bite the bullet and get the program to do something as 
small as possible to test it.

I guess I'll just have to continue to miss my unix commands...


Hari Sekhon

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the Python-list mailing list