What should Python apps do when asked to show help?

Jussi Piitulainen jussi.piitulainen at helsinki.fi
Thu Apr 28 13:30:04 EDT 2016


Steven D'Aprano writes:
> I have an application written in Python which accepts -h or --help to
> show help. I can:
>> (1) print the help text to stdout;
>> (2) run the help text through a pager;
>> (3) do something else?
>>> Many command line tools simply output help to stdout (or stderr, if
> they're evil), which makes it easy to redirect the help to a file,
> pass it to grep, etc. For example:
>> [steve at ando ~]$ wget --help | wc -l
> 136
>> Other tools automatically launch a pager, e.g. man. (Admittedly, man
> --help does not use a pager.) The Python help system, pydoc, does the
> same.
>> I was thinking that my application could use pydoc:
>> def do_help():
> import pydoc
> pydoc.pager(HELPTEXT)
>> or just print the help text:
>> def do_help():
> # Do I really need to show this???
> print(HELPTEXT)
>>> but I was thinking of doing both: give my application a subcommand or
> an option to display help directly in a pager, while -h and --help
> print to stdout as normal.
>> What do you think? Too clever?

Keep --help, -h reasonably short and print it to stdout. That's what I
expect and then I know what to do with it.
An actual man page is the obvious place for more documentation.
The --help text can tell where more information is available.


More information about the Python-list mailing list

AltStyle によって変換されたページ (->オリジナル) /