- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个带有父解析器的小脚本,它接受 create
或 run
参数。
在前一种情况下,我想从用户那里获取更多信息,但我想逐步获取这些信息,这样他们就不必在一开始就输入包含 15 个参数的字符串。我可以创建下一个解析器,但是当我向它传递一个来自 raw_input()
的字符串时,每个字符都被视为一个参数,这让我相信我做错了:
parser = argparse.ArgumentParser()
subparsers = parser.add_subparsers(title='subcommands', help='additional help')
create_parser = subparsers.add_parser('create')
create_parser.set_defaults(func=create)
run_parser = subparsers.add_parser('run')
run_parser.set_defaults(func=run)
def create():
author_parse = argparse.ArgumentParser()
author_parse.add_argument('name', type=str, nargs=2)
auth_args = auth_parse.parse_args(raw_input("Provide your first and last name:"))
# >> myprogram run
# >> Provide your first and last name:
# >> john smith
# >> error: unrecognized arguments: h n S m i t h
编辑:对于那些想知道为什么我不只是使用 raw_input()
的人来说,这是因为我将经历几轮从用户那里获取更多信息,并希望利用 argparse 的强大能力来智能地管理输入,而不是自己编写所有内容。例如,对于“您的名字和姓氏是什么?”,整数不是可接受的响应。
raw_input()
是我所知道的在运行时从用户那里获取响应的唯一方法,这也是我调用它的唯一原因。
最佳答案
argparse.parse_args()
接受一个可迭代的字符串;你正在传递一个字符串。尝试一下
def create():
author_parse = argparse.ArgumentParser()
author_parse.add_argument('name', type=str, nargs=2)
name = raw_input("Provide your first and last name: ")
auth_args = auth_parse.parse_args(name.split())
字符串本身是可迭代的,被视为字符串中的字符列表。也就是说,
auth_parse.parse_args("John Smith")
产生与
相同的结果auth_parse.parse_args(["J", "o", "h", "n", " ", "S", "m", "i", "t", "h"])
关于python - 如何在运行时使用 argparse 有条件地获取进一步的输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32659345/
我有这个: const {ops} = getOplogStreamInterpreter(strm); ops.del.subscribe(v => { console.log('delete
我四处搜索,据我所知,POST 表单请求已被限制为 10MB (http://golang.org/src/net/http/request.go#L721)。 如果我要在我的 ServeHTTP 方
我是一名优秀的程序员,十分优秀!