gpt4 book ai didi

python - docopt - 每个参数需要特定的数据类型

转载 作者:太空宇宙 更新时间:2023-11-03 16:42:05 24 4
gpt4 key购买 nike

我通常在 Python 中使用 argparse,在 R 中使用 docopt。我错过了 argparse 中我尚未在 docopt 中弄清楚的功能之一,即能够为每个参数指定所需的数据类型。例如,在 argparse 中,我需要使用整数输入

parser.add_argument("square", help="display a square of a given number",
type=int)

在 docopt/R 中,我在文档中找不到任何有关需要特定数据类型的内容。

-s <square>, --square=<square>   display a square of a given number #additional option to require integer input?

有一个已关闭的issue在 docopt GitHub 存储库的 Python 版本上,似乎表明这不是基本 docopt 的一部分,并为 Python 提供了解决方案,但这并不直接适用于 R。任何人都可以提供任何建议/更优雅的方式来验证参数在 R 中使用 docopt 输入?

最佳答案

不确定这是否足够优雅,因为它涉及设置默认值,然后使用 utils::type.convert 确定类/类型

"Usage: my_program.R [-hson FILE] [--quiet | --verbose] [INPUT ...]

-h --help show this
-s --sorted sorted output
--coefficient=K [default: 2.95] The K coefficient
--numSim=K [default: 200] number of simulations
--output=FILE [default: test.txt] Output file
--directory=DIR [default: ./] Some directory
-o FILE specify output file [default: ./test.txt]
--quiet print less text
--verbose print more text" -> doc
opts <- docopt(doc, "-s --quiet")
str(opts)

newopts <- lapply(opts, function(x) utils::type.convert(as.character(x),as.is=T))
(definedClasses <- unlist(lapply(newopts, typeof)))

当您运行程序时,您可以针对此defineClasses测试输入。

您可能还想查看 getoptoptparse/argparse 软件包以及这篇 SO 帖子 Parsing command line arguments in R scripts

引用文献:

http://docopt.org

http://rgrannell1.github.io/blog/2014/08/04/command-line-interfaces-in-r

http://docopt.readthedocs.org/en/0.2.0/

关于python - docopt - 每个参数需要特定的数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36700879/

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