尝试指定命令行参数但无法弄清楚 - 不完全确定"dest"和"store"在optparse中做什么



所以我试图让我的程序采用命令行参数并在我的脚本中使用它。我阅读了argparseoptparse文档,但我仍然迷失了方向。 我正在尝试做的是让我的代码在命令行上执行它:

./program <-p port> <-s> [required1] [required2]

-p 是可选的,我想使端口成为脚本中的变量,如下所示:

server_address = ('some server name', **port**)

我认为这就是storedest会做的......就像store会采用port参数一样,dest将是变量名,我可以像program.port一样称呼它。但是,它不是这样工作的,我找不到或破译确切的解释,说明存储和存储到底做了什么。

我是 Python 的新手,所以这可能不是一个格式良好的问题。

因此,按照文档:

  1. 创建分析程序
import argparse
parser = argparse.ArgumentParser(description='Some helpful text about what your function does')
  1. 你添加参数,可选的参数前面有'-',见下文
parser.add_argument('-p', '--port', type=int, default=0, help='port')
parser.add_argument('-s', help='I don't know what this is')
parser.add_argument('required_1')  # Note the lack of dashes
parser.add_argument('required_2')
  1. 你需要用函数调用来解析参数
args = parser.parse_args()
  1. 这将创建一个命名空间对象,然后您可以从中访问变量,请参见下文
port = args.port
or
port = vars(args)['port']
req1 = args.required_1
req2 = args.required_2
etc...

有关命名空间对象的更多信息,请查看此问题

希望这有所帮助。

最新更新