gpt4 book ai didi

python - 如何使用 argparse 在 python 中添加多个参数选项?

转载 作者:行者123 更新时间:2023-11-28 17:15:08 43 4
gpt4 key购买 nike

我的要求:

现在,当我使用这个命令运行我的 python 应用程序时

python main.py -d listhere/users.txt

程序将运行并将结果文件保存为预定义的名称,比如 reports.txt

现在我想添加此功能以允许用户选择放置文件名的内容以及保存位置

python main.py -d -o output/newfilname -i listhere/users.txt

一切都是一样的,但我想传递另一个参数 -o 来确定要保存的 filpath 和名称。我该怎么做。处理或组合多个选项的最佳方式是什么。

我试过了

    parser = argparse.ArgumentParser(description = "CHECK-ACCESS REPORTING.")
parser.add_argument('--user','-d', nargs='?')
parser.add_argument('--output','-d -o', nargs='?')
parser.add_argument('--input','-i', nargs='?')
args = parser.parse_args(sys.argv[1:])

if args.output and args.input:
#operation that involves output filename too
elif args.user and not args.input:
#default operation only
else:
#notset

我在尝试以这种方式解决问题时遇到此错误

错误:

report.py:错误:无法识别的参数:-o listhere/users.txt

最佳答案

nargs='?' 标记的选项以 3 种方式工作

parser.add_argument('-d', nargs='?', default='DEF', const='CONST')

命令行:

foo.py -d value # => args.d == 'value'
foo.py -d # => args.d == 'CONST'
foo.py # => args.d == 'DEF'

https://docs.python.org/3/library/argparse.html#const

利用这一点,你不应该需要像这个错误的 -d -o 标志这样的东西。

如果你不使用const参数,就不要使用'?'

parser.add_argument('--user','-u', nargs='?', const='CONST', default='default_user')
parser.add_argument('--output','-o', default='default_outfile')
parser.add_argument('--input','-i', default='default_infile')

关于python - 如何使用 argparse 在 python 中添加多个参数选项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44745588/

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