gpt4 book ai didi

python - 如何从 plac(Python 命令行解析器)显示默认用法/帮助

转载 作者:行者123 更新时间:2023-12-04 10:38:13 25 4
gpt4 key购买 nike

我有一个使用“plac”构建的简单命令行程序,这是一个出色的 Python 命令行解析器,我正在尝试以编程方式打印出特定命令的默认用法(也称为“帮助”输出)。

我在“plac”文档中找不到任何内容。感谢您的帮助。

下面是一个示例程序:

import plac

@plac.annotations(
bootstrap=plac.Annotation("bootstrap", "option", "b", str),
repo=plac.Annotation("repo to load", "option", "r", str),
similar=plac.Annotation("term (word|pos) to find similarities, requires 'term'", "flag", "s"),
mostsimilar=plac.Annotation("similar words to find, requires 'term'", "flag", "m"),
similarity=plac.Annotation("similarity between two words, requires 'term' and 'term2", "flag", "S"),
term=plac.Annotation("term (word|pos)", "option", "t", str),
term2=plac.Annotation("second term (word|pos)", "option", "T", str)
)
def main(bootstrap, repo, similar, mostsimilar, similarity, term, term2):
:
if error:
# PRINT USAGE HERE
:
if __name__ == '__main__':
plac.call(main)

在出现命令行错误时,我想使用代码(上面示例中的“PRINT ERROR HERE”)来显示用法,就像我直接发出帮助命令(“python myCLI.py -h”)时一样:

usage: myCLI.py [-h] [-b BOOTSTRAP] [-r REPO] [-s] [-m] [-S] [-t TERM] [-T TERM2]

optional arguments:
-h, --help show this help message and exit
-b BOOTSTRAP, --bootstrap BOOTSTRAP
bootstrap
-r REPO, --repo REPO repo to load
-s, --similar term (word|pos) to find similarities, requires 'term'
-m, --mostsimilar similar words to find, requires 'term'
-S, --similarity similarity between two words, requires 'term' and
'term2
-t TERM, --term TERM term (word|pos)
-T TERM2, --term2 TERM2
second term (word|pos)

最佳答案

在大量阅读和检查源代码,以及从@chepner 和@hpaulj 评论中获得的一些想法后,我找到了一个可行的解决方案。如果使用“-h”(帮助)标志调用 CLI,以下代码片段确实会打印出相同的帮助文本:

parser = plac.parser_from(main)
parser.print_help()

完整的示例代码如下所示:

import plac

@plac.annotations(
bootstrap=plac.Annotation("bootstrap", "option", "b", str),
repo=plac.Annotation("repo to load", "option", "r", str),
similar=plac.Annotation("term (word|pos) to find similarities, requires 'term'", "flag", "s"),
mostsimilar=plac.Annotation("similar words to find, requires 'term'", "flag", "m"),
similarity=plac.Annotation("similarity between two words, requires 'term' and 'term2", "flag", "S"),
term=plac.Annotation("term (word|pos)", "option", "t", str),
term2=plac.Annotation("second term (word|pos)", "option", "T", str)
)
def main(bootstrap, repo, similar, mostsimilar, similarity, term, term2):
:
if error:
###### Print help message on error
parser = plac.parser_from(main)
parser.print_help()
######
:
if __name__ == '__main__':
plac.call(main)

关于python - 如何从 plac(Python 命令行解析器)显示默认用法/帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60063980/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com