Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>The argparse module offers a way to do this without implementing your own requiredness checks. The example below uses "subparsers" or "sub commands". I've implemented a subparser for "dump" and one for "format".</p> <pre><code>import argparse parser = argparse.ArgumentParser() parser.add_argument('file', help='The file you want to act on.') subparsers = parser.add_subparsers(dest='subcommand') # subparser for dump parser_dump = subparsers.add_parser('dump') # add a required argument parser_dump.add_argument( 'format', choices=['csv', 'json'], help='Dump the file in this format.') # subparser for upload parser_upload = subparsers.add_parser('upload') # add a required argument parser_upload.add_argument( 'server', choices=['amazon', 'imgur'], help='Upload the file to this service.') args = parser.parse_args() print args if args.subcommand == 'dump': print 'I will now dump "%s" in the %s format' % (args.file, args.format) if args.subcommand == 'upload': print 'I will now upload "%s" to %s' % (args.file, args.server) </code></pre> <p>That looks like this on the command line:</p> <pre><code>$ python ap.py usage: ap.py [-h] file {upload,dump} ... ap.py: error: too few arguments $ python ap.py tmp.txt usage: ap.py [-h] file {upload,dump} ... ap.py: error: too few arguments $ python ap.py tmp.txt upload usage: ap.py file upload [-h] {amazon,imgur} ap.py file upload: error: too few arguments $ python ap.py tmp.txt upload amazo usage: ap.py file upload [-h] {amazon,imgur} ap.py file upload: error: argument server: invalid choice: 'amazo' (choose from 'amazon', 'imgur') $ python ap.py tmp.txt upload amazon Namespace(file='tmp.txt', server='amazon', subcommand='upload') I will now upload "tmp.txt" to amazon $ python ap.py tmp.txt upload imgur Namespace(file='tmp.txt', server='imgur', subcommand='upload') I will now upload "tmp.txt" to imgur $ python ap.py tmp.txt dump usage: ap.py file dump [-h] {csv,json} ap.py file dump: error: too few arguments $ python ap.py tmp.txt dump csv Namespace(file='tmp.txt', format='csv', subcommand='dump') I will now dump "tmp.txt" in the csv format $ python ap.py tmp.txt dump json Namespace(file='tmp.txt', format='json', subcommand='dump') I will now dump "tmp.txt" in the json format </code></pre> <p>More info: <a href="http://docs.python.org/dev/library/argparse.html#argparse.ArgumentParser.add_subparsers" rel="noreferrer">http://docs.python.org/dev/library/argparse.html#argparse.ArgumentParser.add_subparsers</a></p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload