gpt4 book ai didi

python - Argparse 需要一个参数

转载 作者:行者123 更新时间:2023-12-03 16:54:55 25 4
gpt4 key购买 nike

我有以下

import argparse

parser = argparse.ArgumentParser(prog='macc', usage='macc [options] [address]')
parser.add_argument('-l', '--list', help='Lists MAC Addresses')
args = parser.parse_args()
print(args)

def list_macs():
print("Found the following MAC Addresses")

使用 python macc.py -l 运行时出现错误它说预计会有争论。即使我将代码更改为 parser.add_argument('-l', '--list', help='Lists MAC Addresses' default=1)我犯了同样的错误。

最佳答案

参数的默认操作是 store ,它设置了 parser.parse_args 返回的命名空间中的属性值使用下一个命令行参数。

您不想存储任何特定值;你只想承认-l被使用。一个快速的技巧是使用 store_true操作(这会将 args.list 设置为 True )。

parser = argparse.ArgumentParser(prog='macc')
parser.add_argument('-l', '--list', action='store_true', help='Lists MAC Addresses')

args = parser.parse_args()

if args.list:
list_macs()
store_true行动暗示 type=booldefault=False以及。

然而,一个更简洁的方法是定义一个名为 list 的子命令。 .使用这种方法,您的调用将是 macc.py list而不是 macc.py --list .
parser = argparse.ArgumentParser(prog='macc')
subparsers = parser.add_subparsers(dest='cmd_name')
subparsers.add_parser('list')

args = parser.parse_args()

if args.cmd_name == "list":
list_macs()

关于python - Argparse 需要一个参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59363298/

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