R argparse:描述中的换行符

时间:2014-11-26 13:35:32

标签: r argparse

我正在使用R包argparse来解析R脚本中的命令行参数。

为了便于阅读,我想在脚本的“描述”中和参数的帮助中添加换行符。但是,我不能这样做......让我们看一个例子。鉴于此脚本:

#!/usr/bin/env Rscript

require(argparse)

docstring<- "Description\nDone"

parser<- ArgumentParser(description= docstring)
args<- parser$parse_args()

使用 -h 执行时,应打印:

Description
Done

但是,我收到了错误:

Error in rjson::fromJSON(output) : unexpected character 'F'
Calls: <Anonymous> -> <Anonymous> -> <Anonymous>
Execution halted

paste(“Description”,“Done”,sep ='\ n')这样的docstring的变体同样不成功。

编辑:传递RawTextHelpFormatter:没有运气。

parser<- ArgumentParser(description= docstring, RawTextHelpFormatter= TRUE)

知道如何在argparse中添加换行符吗?

非常感谢!

的Dario

NB :在r-help上发帖:https://stat.ethz.ch/pipermail/r-help/2014-November/423722.html

sessionInfo()
R version 3.0.1 (2013-05-16)
Platform: x86_64-apple-darwin10.8.0 (64-bit)

locale:
[1] en_GB.UTF-8/en_GB.UTF-8/en_GB.UTF-8/C/en_GB.UTF-8/en_GB.UTF-8

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] argparse_1.0.1 proto_0.3-10  

loaded via a namespace (and not attached):
[1] findpython_1.0.1 getopt_1.20.0    rjson_0.2.13    

1 个答案:

答案 0 :(得分:2)

经过一段时间的游戏并查看代码后,我找到了自己答案的解决方案:使用formatter_class= 'argparse.RawTextHelpFormatter'并正确转义换行符:

#!/usr/bin/env Rscript

require(argparse)

docstring<- "DESCRIPTION \\n\\
Do stuff \\n\\n\\
Do more stuff"

parser<- ArgumentParser(description= docstring, formatter_class= 'argparse.RawTextHelpFormatter')
args<- parser$parse_args()

现在它正确地给出了(省略了启动消息):

./testParse.R -h
usage: ./testParse.R [-h]

DESCRIPTION 
Do stuff 

Do more stuff

optional arguments:
  -h, --help  show this help message and exit

@hpaulj你的提示是正确的,我花了一段时间来弄清楚它!