title: Implementing two positional arguments using argparse's `add_subparsers` method
body: <p>I would like to get the following functionality while using the <code>add_subparsers</code> method of the <code>argparse</code> library and without using the keyword argument <code>nargs</code>:</p>
  
  <pre><code>$ python my_program.py scream Hello
  You just screamed Hello!!
  $ python my_program.py count ten
  You just counted to ten.
  </code></pre>
  
  <p>I know I could do this:</p>
  
  <pre><code>import argparse
  
  parser = argparse.ArgumentParser()
  parser.add_argument("cmd", help="Execute a command", action="store",
    nargs='*')
  args = parser.parse_args()
  args_list = args.cmd
  
  if len(args.cmd) == 2:
      if args.cmd[0] == "scream":
          if args.cmd[1] == "Hello":
              print "You just screamed Hello!!"
          else:
              print "You just screamed some other command!!"
  
      elif args.cmd[0] == "count":
          if args.cmd[1]:
              print "You just counted to %s." % args.cmd[1]
          else:
              pass
  
      else:
          print "These two commands are undefined"
  
  else:
      print "These commands are undefined"
  </code></pre>
  
  <p>But then when I do <code>$ python my_program.py</code> I lose that default arparse text that shows a list of arguments etc. .</p>
  
  <p>I know there is an <code>add_subparsers</code> method of the <code>argparse</code> library that can handle more than one positional argument but I have not found a way to get it properly working. Could anyone show me how?</p>