草庐IT

argparse_test

全部标签

Python:从命令行调用时如何启用 kwargs? (也许与 argparse)

假设我有模块myscript.py;此模块是生产代码,通常称为%dir%>pythonmyscript.pyfoobar。我想扩展它以接受关键字参数。我知道我可以使用下面的脚本来获取这些参数,但不幸的是,必须使用来调用它%dir%>pythonmyscript.pymain(foo,bar)。我知道我可以使用argparse模块,但我不确定该怎么做。importsysdefmain(foo,bar,**kwargs):print'Calledmyscriptwith:'print'foo=%s'%fooprint'bar=%s'%barifkwargs:forkinkwargs.key

python - 如何将 argparse 值存储在变量中?

我正在尝试使用以下代码向我的脚本添加命令行选项:importargparseparser=argparse.ArgumentParser('Myprogram')parser.add_argument('-x','--one')parser.add_argument('-y','--two')parser.add_argument('-z','--three')args=vars(parser.parse_args())foo=args['one']bar=args['two']cheese=args['three']这是执行此操作的正确方法吗?此外,如何从IDLEshell运行它?我

python - 如何停止 argparse.FileType 创建指定为默认的文件

我喜欢argparse模块。argparse.FileType也很有用,除非您希望默认值不是sys.std*因为即使您提供了默认输出文件也会创建值(value)。例如:parser.add_argument('--outfile',type=FileType('w'),default="out.txt")即使您使用--outfile指定文件,也会创建out.txt。我能想到的最好的是:classMagicFileType(object):def__init__(self,*args,**kwargs):#saveargs/kwargsandsetfiletypetoNoneself.f

python - 使用 setup.py test 和 tox 运行 Django 测试

我构建了一个Django应用程序,并使用setuptools将其打包。现在,我想做以下事情:我想使用pythonsetup.pytest运行所有测试。但是当我发出这个命令时,我得到:/usr/lib/python2.7/distutils/dist.py:267:UserWarning:Unknowndistributionoption:'install_requires'warnings.warn(msg)usage:setup.py[global_opts]cmd1[cmd1_opts][cmd2[cmd2_opts]...]or:setup.py--help[cmd1cmd2..

python - py.test 运行 Python2 和 Python3

我编写了一个包(http://github.com/anntzer/parsedcmd),它可以在Python2和Python3上运行。但是,我不得不为Python2和Python3编写单独的(py.test)单元测试(主要是因为我想测试Python3的额外功能,特别是仅关键字参数),所以我有一个test_py2.py和一个test_py3.py在test分包。现在,如果我跑,说py.test2mypkg,test_py2通过,但是test_py3失败并显示SyntaxError.同样,对于py.test3mypkg,test_py3通过但test_py2失败(虽然我可以让这个工作,这

Python argparse parse_args 到全局命名空间(或者这是一个坏主意的原因)

我主要使用argparse在python中制作命令行脚本,我通常使用的习惯用法是将参数分配为对象的属性,然后将它们单独解析为与其属性名称匹配的变量。这似乎有点重复。有没有办法将它们全部分配到全局命名空间中并删除分配步骤;或者当某些python行为对我来说似乎违反直觉时经常出现的情况,一些聪明的python专家可以指出我不应该这样做或不想这样做的充分理由吗?我现在拥有的是:if__name__=="__main__":parser=argparse.ArgumentParser()parser.add_argument("--db",type=str,dest='db',nargs='?

python - Django 数据迁移在运行 manage.py test 时失败,但在运行 manage.py migrate 时失败

我有一个看起来像这样的Django1.7迁移:#-*-coding:utf-8-*-from__future__importunicode_literalsfromdjango.dbimportmodels,migrationsdefunits_to_m2m(apps,schema_editor):Interval=apps.get_model("myapp","Interval")IntervalUnit=apps.get_model("myapp","IntervalUnit")forintervalinInterval.objects.all():IntervalUnit(int

python - nosetests 框架 : how to pass environment variables to my tests?

我有一个测试套件,它作为一个更大的构建框架的一部分执行,是用Python编写的。一些测试需要参数,我想使用环境变量传递这些参数。显然nosetestsrunner有一个env参数,它可以满足我的要求,accordingtothedocumentation.然而,它似乎并没有像预期的那样工作?这里有一个最小的测试脚本来举例说明这个问题:#!/usr/bin/envpython#pipinstallnoseimportos,nose,unittestclassTest(unittest.TestCase):deftest_env(self):self.assertEquals(os.env

python - argparse——可选参数需要 2 个值或没有

我正在尝试为脚本创建一个可选参数,该参数可以不带任何值或2个值,仅此而已。你能用argparse完成这个吗?#desiredoutput:#./script.py-a-->works#./script.py-aval1-->error#./script.py-aval1val2-->works版本1--接受0或1个值:parser=argparse.ArgumentParser()parser.add_argument("-a","--action",nargs="?",const=True,action="store",help="dosomeaction")args=parser.

Python 单元测试 : cancel all tests if a specific test fails

我正在使用unittest来测试我的Flask应用程序,并使用nose来实际运行测试。我的第一组测试是为了确保测试环境干净,并防止在Flask应用程序配置的数据库上运行测试。我确信我已经干净地设置了测试环境,但我希望在不运行所有测试的情况下对此有一些保证。importunittestclassMyTestCase(unittest.TestCase):defsetUp(self):#setsomestuffuppassdeftearDown(self):#dotheteardownpassclassTestEnvironmentTest(MyTestCase):deftest_envi