Python argparse 静态参数

1 投票
1 回答
794 浏览
提问于 2025-04-18 08:23

我刚开始学习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()

但是这样不行。

1 个回答

3

你在寻找 子解析器

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 更简单、更直观。

撰写回答