Skip to content

Instantly share code, notes, and snippets.

@kodelint
Created January 5, 2017 18:40
Show Gist options
  • Save kodelint/196de65092f121d06f3b17c07738ad80 to your computer and use it in GitHub Desktop.
Save kodelint/196de65092f121d06f3b17c07738ad80 to your computer and use it in GitHub Desktop.
nix like which function for python
def which(program):
"""
:param program: i.e. docker, python etc
:return: full path for the given binary
"""
import os
def is_exe(fpath):
return os.path.isfile(fpath) and os.access(fpath, os.X_OK)
fpath, fname = os.path.split(program)
if fpath:
if is_exe(program):
return program
else:
for path in os.environ["PATH"].split(os.pathsep):
path = path.strip('"')
exe_file = os.path.join(path, program)
if is_exe(exe_file):
return exe_file
return None
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment