title: Python argparse - Mutually exclusive group with default if no argument is given
body: <p>I'm writing a Python script to process a machine-readable file and output a human-readable report on the data contained within.<br>
  I would like to give the option of outputting the data to <code>stdout (-s)</code> (by default) or to a txt <code>(-t)</code> or csv <code>(-c)</code> file. I would like to have a switch for the default behaviour, as many commands do.</p>
  
  <p>In terms of <code>Usage:</code>, I'd like to see something like <code>script [-s | -c | -t] input file</code>, and have <code>-s</code> be the default if no arguments are passed.</p>
  
  <p>I currently have (for the relevant args, in brief):</p>
  
  <pre><code>parser = argparse.ArgumentParser()
  group = parser.add_mutually_exclusive_group()
  group.add_argument('-s', '--stdout', action='store_true')
  group.add_argument('-c', '--csv', action='store_true')
  group.add_argument('-t', '--txt', action='store_true')
  args = parser.parse_args()
  
  if not any((args.stdout, args.csv, args.txt)):
      args.stdout = True
  </code></pre>
  
  <p>So if none of <code>-s</code>, <code>-t</code>, or <code>-c</code> are set, <code>stdout (-s)</code> is forced to True, exactly as if <code>-s</code> had been passed.</p>
  
  <p>Is there a better way to achieve this?  Or would another approach entirely be generally considered 'better' for some reason?</p>
  
  <p>Note: I'm using Python 3.5.1/2 and I'm not worried about compatibility with other versions, as there is no plan to share this script with others at this point.  It's simply to make my life easier.</p>