gpt4 book ai didi

python - argparse:要求可选参数位于位置参数之前

转载 作者:行者123 更新时间:2023-11-30 22:56:21 25 4
gpt4 key购买 nike

我有一个Python脚本,它包装了openssh客户端二进制文件,并且需要以相同的方式解析参数。我正在使用 argparse。

使用 ssh,这意味着连接到主机,以“a”身份登录,然后运行“ls”。

ssh -la host ls

虽然这意味着连接到主机并运行“ls -la”:

ssh host ls -la

argparse 将它们视为相同。有没有一种惯用的方法来告诉 argparse 可选参数必须位于位置参数之前?

最佳答案

使用nargs=argparse.REMAINDER:

import argparse

p = argparse.ArgumentParser()
p.add_argument('-l', '--login')
p.add_argument('host')
p.add_argument('cmd', nargs=argparse.REMAINDER)
print p.parse_args('-la server ls'.split())
print p.parse_args('server ls -la'.split())

结果:

Namespace(cmd=['ls'], host='server', login='a')
Namespace(cmd=['ls', '-la'], host='server', login=None)

关于python - argparse:要求可选参数位于位置参数之前,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37055706/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com