gpt4 book ai didi

python - argparse 具有不同的模式

转载 作者:太空宇宙 更新时间:2023-11-03 17:41:39 25 4
gpt4 key购买 nike

我在使用 argparse 时遇到一些困难。我有一个 GUI 应用程序,我想像这样使用:

  1. GUI.exe => 打开 GUI 应用程序
  2. GUI.exe -s file_directory1 => 无需打开即可播放 GUIX.exe
  3. GUI.exe -s file_directory1 -o file_directory2 => 与 2 相同。

不允许这样做:GUI.exe -o file_directory

我知道如何执行 1 和 2,但不知道如何执行 3

有人已经这样做过或者可以给我一些线索吗?

预先感谢您的帮助。

最佳答案

仅使用 add_argument 且不进行手动检查是不可能实现您想要的效果的。正如 maggick 已经说过的,您始终可以在解析命令行后检查用户是否使用了正确的选项,手动执行以下操作:

if args.option1 and not args.option2:
parser.error('some error')

但是我相信您的 -s 选项的作用有点像 subcommand 。如果是这种情况,最好使用 add_subparsers并将 file_directory1 作为其必需参数,同时将 -o 作为其选项:

import argparse

parser = argparse.ArgumentParser()
subs = parser.add_subparsers()

s_parser = subs.add_parser('sname')
s_parser.add_argument('file_directory1')
s_parser.add_argument('-o', dest='file_directory2')

并将其用作:

prog   # -> launch gui
prog sname file_directory1
prog sname file_directory1 -o file_directory2

关于python - argparse 具有不同的模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30457162/

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