草庐IT

argparse_test

全部标签

python - Argparse"ArgumentError : argument -h/--help: conflicting option string(s): -h, --help"

最近在学习argparse模块,代码下方出现Argument错误importargparseimportsysclassExecuteShell(object):defcreate(self,args):"""aaaaaaa"""print('aaaaaaa')returnargsdeflist(self,args):"""ccccccc"""print('ccccccc')returnargsdefdelete(self,args):"""ddddddd"""print('ddddddd')returnargsclassTestShell(object):defget_base_pa

python argparse : unrecognized arguments

当我运行parsePlotSens.py-sbwhehe时,它说hehe是一个无法识别的参数。但是,如果我运行parsePlotSens.pyhehe-sbw,就可以了。理想情况下,我希望它适用于这两种情况。有什么建议吗?以下是我的代码:if__name__=='__main__':parser=argparse.ArgumentParser(prog='parsePlotSens');parser.add_argument('-s','--sort',nargs=1,action='store',choices=['mcs','bw'],default='mcs',help=sort

python - Python中使用argparse的条件命令行参数

我想要一个带有--action=标志的程序,其中有效的选择是dump和upload,upload是默认值。如果(且仅当)dump被选中,我希望还有一个--dump-format=选项。有没有办法使用argparse来表达这一点,还是我只需要接受所有参数并自己做逻辑。 最佳答案 argparse模块提供了一种无需自己实现的方法必要性检查。下面的示例使用“子解析器”或“子命令”。我为“转储”实现了一个子解析器,为“格式”实现了一个。importargparseparser=argparse.ArgumentParser()parser.

Python argparse : Is there a way to specify a range in nargs?

我有一个支持参数列表的可选参数。我的意思是,它应该支持:-f12-f123但不是:-f1-f1234有没有办法在argparse中强制执行此操作?现在我使用nargs="*",然后检查列表长度。编辑:根据要求,我需要的是能够定义一系列可接受的参数数量。我的意思是,说(在示例中)2或3个args是正确的,但不是1或4或任何不在2..3范围内的东西 最佳答案 您可以使用customaction来执行此操作:importargparsedefrequired_length(nmin,nmax):classRequiredLength(ar

python - 长时间运行的 py.test 在第一次失败时停止

我正在使用pytest,并且测试执行应该一直运行到遇到异常为止。如果测试从未遇到异常,它应该继续运行其余时间或直到我向它发送SIGINT/SIGTERM。是否有一种编程方式告诉pytest在第一次失败时停止运行,而不是在命令行中执行此操作? 最佳答案 pytest-x#stopafterfirstfailurepytest--maxfail=2#stopaftertwofailures见pytestdocumentation. 关于python-长时间运行的py.test在第一次失败时停

python - django user_passes_test 装饰器

如何为基于类的View实现@user_passes_test(lambdau:u.is_superuser)装饰器?我之前将它用于基于函数的View,我有一个解决方法,但感觉不自然。这不应该被dispatch方法覆盖吗? 最佳答案 您在类的dispatch方法上使用@method_decorator:fromdjango.views.genericimportViewfromdjango.utils.decoratorsimportmethod_decoratorfromdjango.contrib.auth.decoratorsi

python - 如何使用 argparse 为参数创建可选值?

我正在创建一个python脚本,我希望有一个参数来控制您获得多少搜索结果作为输出。我目前已将参数命名为--head。这是我希望它拥有的功能:当--head未在命令行中传递时,我希望它默认为一个值。在这种情况下,一个相当大的,比如80当--head没有任何值传递时,我希望它默认为另一个值。在这种情况下,一些有限的东西,比如10当--head传递一个值时,我希望它存储它传递的值。下面是一些描述问题的代码:>>>importargparse>>>parser=argparse.ArgumentParser()>>>parser.add_argument('-h','--head',dest=

python - 使用 py.test 覆盖不包括导入

对于Jedi我们想生成我们的testcoverage.有一个relatedquestion在stackoverflow中,但它没有帮助。我们使用py.test作为测试运行器。但是,我们无法将导入和其他“导入”的内容添加到报告中。例如__init__.py总是被报告为未被发现:NameStmtsMissCover--------------------------------------------------jedi/__init__550%[..]很明显,此文件正在导入,因此应报告为已测试。我们开始这样的测试[*]:py.test--covjedi如您所见,我们正在使用pytest-

python - Python 的 argparse 中的 metavar 和 action 是什么意思?

我正在阅读argparse模块。我被metavar和action的含义卡住了>>>parser.add_argument('integers',metavar='N',type=int,nargs='+',...help='anintegerfortheaccumulator')>>>parser.add_argument('--sum',dest='accumulate',action='store_const',...const=sum,default=max,...help='sumtheintegers(default:findthemax)')我可能错过了,但从我阅读的内容来

python - 确保 py.test 在 sys.path 中包含应用程序目录

我有一个项目目录结构如下(我认为这很标准):my_projectsetup.pymypkg__init__.pyfoo.pytestsfunctionaltest_f1.pyunittest_u1.py我正在使用py.test作为我的测试框架,我希望能够在my_project目录中运行py.testtests我的测试。这确实有效,直到我尝试在测试中使用(例如)importmypkg导入我的应用程序代码。那时,我收到错误“没有名为mypkg的模块”。经过一番调查,似乎py.test使用sys.path中的测试文件目录运行测试,但不是运行py.test的目录。为了解决这个问题,我在test