如果我在我也想用作模块的脚本中使用argparse和if__name__=='__main__'测试,我是否应该在该测试下导入argparse然后初始化它?我发现的样式指南都没有提到在脚本中使用argparse,许多argparse脚本示例不使用“ifname”测试或以不同的方式使用它。到目前为止,这是我一直在做的事情:#!/usr/bin/envpythondefmain(name):print('Hello,%s!'%name)if__name__=='__main__':importargparseparser=argparse.ArgumentParser(descriptio
有没有比这种模式更好的方法来支持枚举作为argparse参数类型?classSomeEnum(Enum):ONE=1TWO=2parser.add_argument('some_val',type=str,default='one',choices=[i.name.lower()foriinSomeEnum])...args.some_val=SomeEnum[args.some_val.upper()] 最佳答案 我看到这是一个老问题,但我刚刚遇到了同样的问题(Python2.7),我是这样解决的:fromargparseimpo
有没有比这种模式更好的方法来支持枚举作为argparse参数类型?classSomeEnum(Enum):ONE=1TWO=2parser.add_argument('some_val',type=str,default='one',choices=[i.name.lower()foriinSomeEnum])...args.some_val=SomeEnum[args.some_val.upper()] 最佳答案 我看到这是一个老问题,但我刚刚遇到了同样的问题(Python2.7),我是这样解决的:fromargparseimpo
使用python的argparse,如何使子命令成为必需的参数?我想这样做是因为如果未指定子命令,我希望argparse出错。我重写了错误方法来打印帮助。我有3层嵌套的子命令,所以这不是简单地在顶层处理零参数的问题。在下面的例子中,如果这样调用,我会得到:$./simple.py$我希望它做的是让argparse提示未指定所需的子命令:importargparseclassMyArgumentParser(argparse.ArgumentParser):deferror(self,message):self.print_help(sys.stderr)self.exit(0,'%s:
使用python的argparse,如何使子命令成为必需的参数?我想这样做是因为如果未指定子命令,我希望argparse出错。我重写了错误方法来打印帮助。我有3层嵌套的子命令,所以这不是简单地在顶层处理零参数的问题。在下面的例子中,如果这样调用,我会得到:$./simple.py$我希望它做的是让argparse提示未指定所需的子命令:importargparseclassMyArgumentParser(argparse.ArgumentParser):deferror(self,message):self.print_help(sys.stderr)self.exit(0,'%s:
我怎样才能有一个默认sub-command,或使用argparse处理未给出子命令的情况?importargparsea=argparse.ArgumentParser()b=a.add_subparsers()b.add_parser('hi')a.parse_args()在这里,我希望选择一个命令,或者仅基于下一个最高级别的解析器(在本例中为顶级解析器)处理的参数。joiner@X:~/src>python3default_subcommand.pyusage:default_subcommand.py[-h]{hi}...default_subcommand.py:error:t
我怎样才能有一个默认sub-command,或使用argparse处理未给出子命令的情况?importargparsea=argparse.ArgumentParser()b=a.add_subparsers()b.add_parser('hi')a.parse_args()在这里,我希望选择一个命令,或者仅基于下一个最高级别的解析器(在本例中为顶级解析器)处理的参数。joiner@X:~/src>python3default_subcommand.pyusage:default_subcommand.py[-h]{hi}...default_subcommand.py:error:t
如何在Python脚本中获得与argparse配合的shell选项卡补全?#!/usr/bin/envpythonimportargparsedefmain(**args):passif__name__=='__main__':parser=argparse.ArgumentParser()parser.add_argument('positional',choices=['spam','eggs'])parser.add_argument('--optional',choices=['foo1','foo2','bar'])args=parser.parse_args()main(*
如何在Python脚本中获得与argparse配合的shell选项卡补全?#!/usr/bin/envpythonimportargparsedefmain(**args):passif__name__=='__main__':parser=argparse.ArgumentParser()parser.add_argument('positional',choices=['spam','eggs'])parser.add_argument('--optional',choices=['foo1','foo2','bar'])args=parser.parse_args()main(*
在argparse中指定程序名称和版本信息的首选方式是什么?__version_info__=('2013','03','14')__version__='-'.join(__version_info__)...parser.add_argument('-V','--version',action='version',version="%(prog)s("+__version__+")")http://argparse.googlecode.com/svn/trunk/doc/ArgumentParser.html#proghttp://pymotw.com/2/argparse/ht