在 optparse 中必须使用 1 个字母的参数吗?
Is it mandatory to use 1 letter arguments in optparse?
我正在使用 optparse
解析 R 中的参数。然后我从命令行调用 R 代码并按如下方式传递参数 Rscript myscript.R -a xx -b yy
。它运行良好,但我对 -a
、-b
等 1 个字母参数的用法有点困惑。
在我的例子中,我有 20 个参数......为每个参数分配一个字母非常不方便。
make_option(c("-o", "--output_path"), type="character"),
make_option(c("-t", "--data_type"), type="character")
如果我在命令行中使用完整名称 --output_path
,我会收到错误消息。
如何解决这个问题?
我对使用短名称或长名称没有任何问题。当我指定两个版本时,我可以调用任一
toargs <- function(x) strsplit(x, " ")[[1]][-(1:2)]
option_list <- list(make_option(c("-o", "--output_path"), type="character"))
parser <- OptionParser("test", option_list)
parse_args(parser, toargs("Rscript myscript.R --output_path xxx"))
# $output_path
# [1] "xxx"
# $help
# [1] FALSE
parse_args(parser, toargs("Rscript myscript.R -o xxx"))
# $output_path
# [1] "xxx"
# $help
# [1] FALSE
它只适用于长版本
option_list <- list(make_option("--output_path", type="character"))
parser <- OptionParser("test", option_list)
parse_args(parser, toargs("Rscript myscript.R --output_path xxx"))
# $output_path
# [1] "xxx"
# $help
# [1] FALSE
parse_args(parser, toargs("Rscript myscript.R -o xxx"))
# Error : short flag "o" is invalid
一个字母参数不是必须的;他们是可选的。但是名字一定要长
使用 optparse_1.6.4
测试
我正在使用 optparse
解析 R 中的参数。然后我从命令行调用 R 代码并按如下方式传递参数 Rscript myscript.R -a xx -b yy
。它运行良好,但我对 -a
、-b
等 1 个字母参数的用法有点困惑。
在我的例子中,我有 20 个参数......为每个参数分配一个字母非常不方便。
make_option(c("-o", "--output_path"), type="character"),
make_option(c("-t", "--data_type"), type="character")
如果我在命令行中使用完整名称 --output_path
,我会收到错误消息。
如何解决这个问题?
我对使用短名称或长名称没有任何问题。当我指定两个版本时,我可以调用任一
toargs <- function(x) strsplit(x, " ")[[1]][-(1:2)]
option_list <- list(make_option(c("-o", "--output_path"), type="character"))
parser <- OptionParser("test", option_list)
parse_args(parser, toargs("Rscript myscript.R --output_path xxx"))
# $output_path
# [1] "xxx"
# $help
# [1] FALSE
parse_args(parser, toargs("Rscript myscript.R -o xxx"))
# $output_path
# [1] "xxx"
# $help
# [1] FALSE
它只适用于长版本
option_list <- list(make_option("--output_path", type="character"))
parser <- OptionParser("test", option_list)
parse_args(parser, toargs("Rscript myscript.R --output_path xxx"))
# $output_path
# [1] "xxx"
# $help
# [1] FALSE
parse_args(parser, toargs("Rscript myscript.R -o xxx"))
# Error : short flag "o" is invalid
一个字母参数不是必须的;他们是可选的。但是名字一定要长
使用 optparse_1.6.4