我正在尝试学习如何使用python的argparse模块。目前我的python脚本是:parser=argparse.ArgumentParser(description='Myfirstargparseattempt',add_help=True)parser.add_argument("-q",action="store",dest='argument',help="Firstargument")output=parser.parse_args()它给出的输出为:usage:test.py[-h][-qARGUMENT]Myfirstargparseattemptoptionala
我正在尝试学习如何使用python的argparse模块。目前我的python脚本是:parser=argparse.ArgumentParser(description='Myfirstargparseattempt',add_help=True)parser.add_argument("-q",action="store",dest='argument',help="Firstargument")output=parser.parse_args()它给出的输出为:usage:test.py[-h][-qARGUMENT]Myfirstargparseattemptoptionala
我认为这是不可能的,但我想自己处理来自argparse的异常。例如:importargparseparser=argparse.ArgumentParser()parser.add_argument('--foo',help='foohelp',required=True)try:args=parser.parse_args()except:do_something()当我运行它时:$myapp.pyusage:myapp--foofoomyapp:error:argument--fooisrequired但我希望它改为属于异常。 最佳答案
我认为这是不可能的,但我想自己处理来自argparse的异常。例如:importargparseparser=argparse.ArgumentParser()parser.add_argument('--foo',help='foohelp',required=True)try:args=parser.parse_args()except:do_something()当我运行它时:$myapp.pyusage:myapp--foofoomyapp:error:argument--fooisrequired但我希望它改为属于异常。 最佳答案
除了修改argparse源,如果调用parse_args()时出现问题,有什么方法可以控制退出状态码,例如,缺少必需的开关? 最佳答案 我不知道有任何机制可以根据每个参数指定退出代码。您可以捕获.parse_args()上引发的SystemExit异常,但我不确定您将如何确定具体导致错误的原因。编辑:对于任何来此寻找实用解决方案的人,情况如下:ArgumentError()在arg解析失败时适本地引发。它被传递参数实例和消息ArgumentError()确实not将参数存储为实例属性,尽管已被传递(这很方便)可以通过继承Argume
除了修改argparse源,如果调用parse_args()时出现问题,有什么方法可以控制退出状态码,例如,缺少必需的开关? 最佳答案 我不知道有任何机制可以根据每个参数指定退出代码。您可以捕获.parse_args()上引发的SystemExit异常,但我不确定您将如何确定具体导致错误的原因。编辑:对于任何来此寻找实用解决方案的人,情况如下:ArgumentError()在arg解析失败时适本地引发。它被传递参数实例和消息ArgumentError()确实not将参数存储为实例属性,尽管已被传递(这很方便)可以通过继承Argume
我编写了一些使用argparse模块的Python2.7代码。现在我需要在Python2.6机器上运行它,因为argparse是在2.7中添加的,所以它无法工作。无论如何我可以在2.6中获得argparse吗?我想避免重写代码,因为我会经常在机器之间传输这种代码。升级python不是一种选择。我应该澄清一下,理想的解决方案是不需要安装模块。 最佳答案 在Centos、Scientific或Redhat上,您可以通过运行以下命令来解决此问题:foryuminstallpython-argparse
我编写了一些使用argparse模块的Python2.7代码。现在我需要在Python2.6机器上运行它,因为argparse是在2.7中添加的,所以它无法工作。无论如何我可以在2.6中获得argparse吗?我想避免重写代码,因为我会经常在机器之间传输这种代码。升级python不是一种选择。我应该澄清一下,理想的解决方案是不需要安装模块。 最佳答案 在Centos、Scientific或Redhat上,您可以通过运行以下命令来解决此问题:foryuminstallpython-argparse
我想在Python的argparse模块中使用ArgumentError异常,但我不知道如何使用它。签名说它应该被称为ArgumentError(argument,message),但我不知道argument应该是什么。我认为它应该是解析器对象的一部分,但我找不到任何文档。 最佳答案 来自thesourcedocumentation:ArgumentError:TheexceptionraisedbyArgumentParserobjectswhenthereareerrorswiththeparser'sactions.Error
我想在Python的argparse模块中使用ArgumentError异常,但我不知道如何使用它。签名说它应该被称为ArgumentError(argument,message),但我不知道argument应该是什么。我认为它应该是解析器对象的一部分,但我找不到任何文档。 最佳答案 来自thesourcedocumentation:ArgumentError:TheexceptionraisedbyArgumentParserobjectswhenthereareerrorswiththeparser'sactions.Error