【问题标题】:Python argparse static argumentsPython argparse 静态参数
【发布时间】:2014-07-23 14:04:52
【问题描述】:

我是 python 中 argparse 的新手。

我的程序可以重置创建、删除或重置帐户密码。

python manager.py create  <some_username>       # Create a account
                  delete  <some_username>       # Delete a account
                  resetpw <some_username> mysql # Reset mysql pw of account
                  resetpw <some_username> unix  # Reset unix pw of account

参数“create”、“delete”、“mysql”和“unix”是静态的。我如何在 argparse 中实现它?

我试过如下:

parser = argparse.ArgumentParser(prog='manager')
parser.add_argument('create', action='store_true', help='Create a account')
parser.add_argument('delete', action='store_true', help='Delete a account')
args = parser.parse_args()

但这不起作用。

【问题讨论】:

  • “静态”是什么意思?这不是一个普通的 Python 概念。

标签: python argparse command-line-interface


【解决方案1】:

您正在寻找subparsers:

import argparse

parser = argparse.ArgumentParser(prog='manager')
sub = parser.add_subparsers(dest='command')
sub.add_parser('create', help='Create a account')
sub.add_parser('delete', help='Delete a account')

print parser.parse_args(['create'])
# Namespace(command='create')

作为旁注,我建议您尝试placargh。它们提供比标准 argparse 更简单、更直观的语法

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-09
    • 2013-03-31
    • 2015-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-24
    相关资源
    最近更新 更多