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...

-h

-- 
Hari Sekhon
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to