所以我试图让我的程序采用命令行参数并在我的脚本中使用它。我阅读了argparse
和optparse
文档,但我仍然迷失了方向。 我正在尝试做的是让我的代码在命令行上执行它:
./program <-p port> <-s> [required1] [required2]
-p 是可选的,我想使端口成为脚本中的变量,如下所示:
server_address = ('some server name', **port**)
我认为这就是store
和dest
会做的......就像store
会采用port
参数一样,dest
将是变量名,我可以像program.port
一样称呼它。但是,它不是这样工作的,我找不到或破译确切的解释,说明存储和存储到底做了什么。
我是 Python 的新手,所以这可能不是一个格式良好的问题。
因此,按照文档:
- 创建分析程序
import argparse
parser = argparse.ArgumentParser(description='Some helpful text about what your function does')
- 你添加参数,可选的参数前面有'-',见下文
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')
- 你需要用函数调用来解析参数
args = parser.parse_args()
- 这将创建一个命名空间对象,然后您可以从中访问变量,请参见下文
port = args.port
or
port = vars(args)['port']
req1 = args.required_1
req2 = args.required_2
etc...
有关命名空间对象的更多信息,请查看此问题
希望这有所帮助。