标签: usage-message

是否应在stdout或stderr上打印命令行"usage"?

打印应用程序的"用法"时,是应该在stdout还是stderr上完成?

根据应用程序,我看过几个案例,但似乎没有一个规则.也许我错了,有一个很好的做法.在那种情况下,它是什么?

command-line stdout stderr usage-message

40
推荐指数
2
解决办法
4359
查看次数

格式化使用消息

如果您查看Mathematica8中的Combinatorica包,您将找到函数的定义.我有兴趣知道的是Mathematica如何知道如何格式化使用信息.有些东西告诉我,我没有看正确的文件.无论如何,让我们尝试以下方法:(mathematicapath)/AddOns/LegacyPackages/DiscreteMath/Combinatorica.m

Cofactor::usage = "Cofactor[m, {i, j}] calculates the (i, j)th cofactor of matrix m."
Run Code Online (Sandbox Code Playgroud)

该行是上述文件中的682行.现在如果我们在mathematica笔记本中运行它并且我们使用,?Cofactor我们将看到完全相同的消息.但是如果我们得到包,那么消息就被格式化了.这是一个截图:

在此输入图像描述

注意函数中的m,i和j是如何变化的,并且在消息中添加了一个双箭头.我认为箭头已添加到邮件中,因为它存在文档.有人可以解释这种行为吗?


编辑:这是我的笔记本文件的屏幕截图,自动保存到m文件.

在此输入图像描述

正如你所看到的那样,L并且M在斜体时代是新的罗马.现在我将加载包并查看用法.

在此输入图像描述

到现在为止还挺好.现在让我们看一下文档中心.我会寻找这个功能LineDistance.

在此输入图像描述

如您所见,它显示了一个奇怪的消息.在这种情况下,我们只想显示没有任何样式的消息.我仍然无法弄清楚Combinatorica包是如何做到的.我按照这个来制作索引,以便doc中心可以显示摘要.摘要本质上是使用显示.如果我需要更具体,请告诉我.

wolfram-mathematica mathematica-8 usage-message

7
推荐指数
1
解决办法
649
查看次数

在控制台应用程序中包含"帮助"消息的最佳方法是什么?

我正在编写一个控制台应用程序,它正在迅速获得许多命令行参数和标志.出于这个原因,我希望用户能够访问这些标志的描述以及它们的服务目的.

我能想到几种可能的解决方案

  • 我可以写一个README文件,只是把它放在与可执行文件相同的目录中.优点是它简单易用,但缺点是有人可以轻松删除/编辑文件.
  • 我可以将整个消息粘贴到我的程序中的变量中,并在用户输入mycmd --help或类似的东西时将其打印到屏幕上.优点,保持可执行和不可编辑,缺点是代码,因为我会有类似下面的东西漂浮.

    const char[] helpmsg = "Line1\n"
                           "Line2\n"
                           "...\n"
                           "LineN\n";
    
    Run Code Online (Sandbox Code Playgroud)
  • 我可以man为我的程序编写一个条目,但这不是非常便携,因为该应用程序将在Windows和Linux上使用得非常相似.

我知道这个问题可能是一个品味问题,但我很好奇是否有其他解决方案,我没有想到人们过去使用过.

理想情况下,开发人员(目前是我)很容易编辑和保持更新,但其他人不能真正搞砸它.

c c++ console usage-message

4
推荐指数
2
解决办法
3230
查看次数

Python Argparse将文本添加到使用消息

我正在开发一个小型Python程序,需要获取一些命令行参数并使用argparse来显示用法消息.我有这2行

parser.add_argument("-r",type=int,default=1)
parser.add_argument("-c",type=int,default=2)
Run Code Online (Sandbox Code Playgroud)

并且要求是我向用户显示以下消息:

*usage: myprogram.py [-h]  [-r ROWS] [-c COLUMNS]* 
Run Code Online (Sandbox Code Playgroud)

然而,我向用户展示的是 -

*usage: myprogram.py [-h] [-r R] [-c C]*
Run Code Online (Sandbox Code Playgroud)

如何将[-r R]转换为[-r ROW](并以相同的方式[-c C]转换[-c COLUMNS])?

我已经看了很多argsparse文档但没有用...

python argparse usage-message

1
推荐指数
1
解决办法
849
查看次数