whichみたいなの、というか、外部プログラムを起動したいときに/usr/local/binにあるのか/opt/local/binにあったりするのだけどいちいち意識しなくていいようにスクリプト中で探したい。
例えばgaston
>>> filter(lambda f: os.path.isfile(f),[os.path.join(d,'gaston') for d in os.environ['PATH'].split(':')])
['/opt/local/bin/gaston', '/opt/local/bin/gaston']
最初にヒットしたものだけ
>>> filter(lambda f: os.path.isfile(f),[os.path.join(d,'gaston') for d in os.environ['PATH'].split(':')])[0]
'/opt/local/bin/gaston'
もっとうまいやりかたあるんだと思うんだけどわからんかった。