【发布时间】:2021-09-22 14:18:15
【问题描述】:
我一直在网上寻找解释如何编写良好的程序使用输出的指南。
假设我有一些用 Python 编写的小程序:
import sys
def main():
if len(sys.argv < 5):
print("Wrong usage")
else:
#Do something with the 4 parameters
#First two looks like this: -s1 SOMETHING1
#Second two looks like this: -s2 SOMETHING2
if __name__ == "__main__":
main()
假设我这样调用这个程序:
py someProgram.py -s1 SOMETHING1 -s2 SOMETHING2
前 2 个参数是必需的,其他 2 个参数不是。
使用信息的良好做法是什么?
我想到了这样的事情:
Usage: py program.py -p1 param1 [-p2 param2]
这是对的吗?我觉得-p1 param1 部分是错误的,它看起来不正确。
编辑: 好的,我在argparse 文档中迷失了方向。 有人可以提供一个简单的例子来说明我的需要吗?是否可以将2个参数连接在一起?假设我尝试访问 args.u 它会给我 param1 值吗?
【问题讨论】:
-
使用
argparse即可免费获得使用信息 -
@DeepSpace 这看起来很有趣,从不知道这个模块存在,我会研究它。但这更像是一个一般性的问题,即编写使用信息的指导方针是什么。我尝试阅读此guideline,但当我希望 2 个参数位于同一组中时,我真的不清楚,例如
-p1 param1。 -
请注意,今天大多数程序对单字母选项使用单个连字符,对多字母选项使用两个连字符。因此
-p1 param1将是带有参数1的单字母选项-p,后跟非选项参数param1。这令人困惑。如果您打算将param1用作选项-p1的参数,那么语法可能应该是--p1 param1或--p1=param1。 argparse 将处理这个问题。如果您编写 Python,我强烈建议您使用 argparse。另外,请查看 GNU 编码标准。我也不完全同意,但它们给出了一些统一性 -
@TurePålsson 这个或一些约定没有标准?还有为什么双“-”?而且我问的不仅仅是 python 语言。
标签: python console usage-message