title: What is a practical difference between check_call check_output call, and Popen methods in the subprocess module?
body: <p>Honestly, I just don't understand the lingo of "non-zero" status to really interpret what's going on or what that means (it wasn't even defined) on help pages. What are some examples of using python to call other scripts in which these processes of </p>
  
  <p><code>subprocess.call
  subprocess.check_output
  subprocess.popen</code></p>
  
  <p>really differ from each other?
  When would you use either of those, and what are the disambiguated details of these methods? Should I be using os.system instead if I wanted simple OS calls?</p>