Python argparse 静态参数

标签 python argparse command-line-interface

我是 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()

但这行不通。

最佳答案

您正在寻找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 更简单、更直观的语法

关于Python argparse 静态参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24011742/

相关文章:

python - 如何循环按顺序生成字符串?

python - 如何计算python中给定字符串中的空格数

Python 参数解析 : Preformatted help text?

symfony - 创建一个仅使用 Symfony2 控制台组件的项目

c++ - 访问命名索引属性

Python (3) readline 无论文件中有什么内容都返回空字符串

python - 从 tflite 模型文件中提取标签

python - 如何使用 'argparse' 指定两个必需参数(包括子命令)?

django - 是否可以在 django 管理命令中创建子解析器?

Azure移动日志查询