Steve Holden <[EMAIL PROTECTED]> writes: > 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.
My function doesn't check if the file is executable at all. This function checks only if the file exists on the PATH. I know it isn't a perfect solution but it is portable. -- Regards, Rob -- http://mail.python.org/mailman/listinfo/python-list