我想完成这样的事情:
-LoadFiles
-SourceFile "" -DestPath ""
-SourceFolder "" -DestPath ""
-GenericOperation
-SpecificOperation -Arga "" -Argb ""
-OtherOperation -Argc "" -Argb "" -Argc ""
用户应该能够运行以下操作:
-LoadFiles -SourceFile "somePath" -DestPath "somePath"
或者
-LoadFiles -SourceFolder "somePath" -DestPath "somePath"
基本上,如果你有-LoadFiles
,你需要有-SourceFile
或-SourceFolder
之后。如果你有-SourceFile
,你需要有-DestPath
等
是否可以为其他参数提供此必需参数链?如果没有,我至少可以做些类似的事情,如果你有-SourceFile
,那么你一定有-DestPath
?
您可以在argparse中使用子parser
有一些
argparse
替代方案,您可以轻松地管理您所提到的情况。 包装如下: click或 docopt。如果我们想绕过argparse中链式参数的手动实现,请查看click中的Commands and Groups。
在您对已创建的
ArgumentParser
实例调用parse_args
之后,它将为您提供一个Namespace
对象。简单地检查一下,如果其中一个参数存在,那么另一个也必须存在。比如:相关问题 更多 >
编程相关推荐