This sample is for error handling for subprocess.Popen. It confirms whether the execution file is existing. If the execution file is also not in the path, the error message is shown.
import subprocess res = subprocess.Popen( "application", # <- Execution file stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True ).communicate() if len(res) == 0: print("ok: Application is existing.") else: print("Error: Application is not found.")