【Python argparse作为一个函数】教程文章相关的互联网学习教程文章

Python的argparse选择限制了打印【代码】

目前我希望Python的argparse模块只打印出’1 – 65535’而不是{1,2,3,… 65535},但文档似乎没有为此提供任何方法.有什么建议?解决方法:您可以通过设置formatter_class option来更改默认设置的格式. 我将HelpFormatter class子类化为改变格式化选择值的方式.这个类正式是一个“实现细节”,但我怀疑它会随着更新的python版本而改变很多. _metavar_formatter method格式化{1,2,…,65535}字符串,您的子类可以覆盖:class RangeChoic...

python – 在argparse中混合位置和可选参数【代码】

当我混合位置参数,可选参数和argparse.REMAINDER时,我在argparse中遇到问题parser = argparse.ArgumentParser() parser.add_argument('verbose', action="store") parser.add_argument('--config', '-c', nargs="?", dest="config_file") parser.add_argument('--dry-run', action="store_true", dest="dryrun") parser.add_argument('args', nargs=argparse.REMAINDER, action="store")样品运行:python test.py verose="5" --con...

python – argparse:store_true和int同时出现【代码】

我正在使用argparse作为cli参数.我想要一个参数-t来进行温度测试.我还想指定温度测量的周期. 我想要: python myscript.py -t每60秒执行一次测量, python myscript.py -t 30每30秒进行一次测量, python myscript.py不做温度测量. 现在我这样做:parser.add_argument('-t', '--temperature',help='performs temperature test (period in sec)',type=int, default=60, metavar='PERIOD')问题是我无法区分python myscript.py和python ...

python argparse字符串列表的选择接受唯一的部分列表元素【代码】

我想有以下规则parser.add_argument('move', choices=['rock', 'paper', 'scissors'])如果您传递一个唯一的字符子集(例如“k”或“oc”将被接受为“rock”而不是“r”,因为它不是唯一的). 我的需求是能够以最快的方式使用一个或多个参数运行脚本,以避免在子集足以让脚本理解选择时编写整个参数名称. 有没有办法获得这个结果仍然利用在帮助和错误处理中自动集成的方便选择列表?解决方法:你可以定义一个列表的自定义子类,它支持你对...

如何使用argparse替换python中的内置’-h’动作?【代码】

我在python中创建一个命令行工具,我正在使用argparse来解析我的输入. 我想使用’-h’作为动作,但已经自动分配给–help.如何覆盖它并具有-h动作?解决方法: parser = argparse.ArgumentParser(add_help=False)谢谢你的询问,因为前几天我遇到了同样的问题,现在只是费心去检查documentation.

python – 使用argparse来解析对象列表【代码】

我有一个带有函数的程序,它接受类初始化器和对象列表.每个对象由3个变量id,value和tag组成.class Package():def __init__(self, id, value, name):if (value <= 0):raise ValueError("Amount must be greater than 0")self.id = idself.value = valueself.tag = tagclass Purchase():def submit(some_list)://Do stuffdef main()://Help here!parser = argparse.ArgumentParser()parser.add_argument("id", help="ID")parser.add_a...

python – 检查argparse参数集,或使用default或overriden【代码】

我想要实现下一个行为:python script.py > my_arg is Nonepython script.py --my-arg > my_arg is "default"python script.py --my-arg some_value > my_arg is "some_value"如何为Argparser配置此参数? 到目前为止我尝试过的:#!/usr/bin/env python import argparseparser = argparse.ArgumentParser() parser.add_argument('--my-argument', nargs='?', default='default') args = parser.parse_args()print(args.my_argumen...

在Python中,如何从argparse深层复制命名空间obj“args”【代码】

我从argparse获得了“args”:args = parser.parse_args()我想将它传递给两个不同的功能,每个功能稍作修改.这就是为什么我要深度复制args,修改副本并将它们传递给每个函数. 但是,copy.deepcopy不起作用.它给了我:TypeError: cannot deepcopy this pattern object那么正确的方法是什么?谢谢解决方法:我自己只是想办法做到这一点:args_copy = Namespace(**vars(args))不是真正的深层复制.但至少比“更深”:args_copy = args

python – 与argparse的Pytest:如何测试用户是否提示确认?【代码】

我有一个CLI工具,并希望测试是否提示用户使用input()确认选择.这与在Python 2中使用raw_input()相同. 码 要测试的(释义)代码如下:import sys import argparsedef confirm():notification_str = "Please respond with 'y' or 'n'"while True:choice = input("Confirm [Y/n]?").lower()if choice in 'yes' or not choice:return Trueif choice in 'no':return Falseprint(notification_str)def parse_args(args):parser = argparse....

python – argparse的–help是否有可能显示我的退出状态?【代码】

我有一个用Python编写的实用程序,可以单独使用,也可以与其他shell实用程序一起使用.因此,我的实用程序退出状态代码(例如,如果一切正常则为0,当输入文件或输出目录不存在时为1,等等). 我的问题:我正在使用argparse module并且它工作得很好,不仅用于解析选项,还用于生成帮助.但是,我希望能够将有关退出状态的一些信息添加到帮助中.这有可能与argparse;我错过了什么吗?解决方法:这是我在epilog中输入的信息. 调整官方文档中的示例:...

python – 使用argparse的无限输入【代码】

所以说我有一个合并功能.我可以将任意数量的文件合并为一个.这需要可变数量的输入.所以我的问题是,从argparser中获取参数,我如何解释2个或更多输入文件的可能性?解决方法:你可以使用nargs =”或nargs =’*’.这些将把args收集到一个列表中.import argparse the_parser = argparse.ArgumentParser() the_parser.add_argument('--input_files',nargs='+') args = the_parser.parse_args()如果你想使用子进程从另一个脚本调用,你可以...

python – 使用argparse完成Bash选项卡不会显示目录中的所有文件【代码】

我注意到,如果使用argparse参数,bash选项卡完成返回的文件较少.我该如何更改/控制? 最小的示例代码me@here:~/test$cat argparsetest.py import argparse parser.add_argument('-i', help='input', required=True)bash完成示例:# shows all the files me@here:~/test$python argparsetest.py argparsetest.py result.png u1.py # does not show the image result.png I am actually interested in me@here:~/test$pyth...

Python标准库—argparse模块【代码】

argparse ArgumentParser 对象 class argparse.ArgumentParser(prog=None, usage=None, description=None, epilog=None, parents=[], formatter_class=argparse.HelpFormatter, prefix_chars='-', fromfile_prefix_chars=None, argument_default=None, conflict_handler='error', add_help=True, allow_abbrev=True)prog - 程序的名称(默认:sys.argv[0]) usage - 描述程序用途的字符串(默认值:从添加到解析器的参数生成) des...

在Python中传递argparse的多个选项【代码】

我一直在看argparse文档,但我仍然很困惑如何使用它.我做了一个python脚本,在代码分析后从pmd,checkstyle或findbugs中获取问题.这些问题也被分类为严重性,阻塞性和严重性等严重性. 所以我希望能够以python script.py形式传递两个参数arg1 arg2其中arg1是p,c,f的组合,代表pmd,checkstyle或findbug,而arg2将是m的组合, c,b代表major,critical和blocker. 因此,例如,如果我在终端中编写python script.py pf cb,我会得到pmd和findbugs严重...

python – argparse允许任意标志【代码】

有没有办法让argparse接受任意标志? 例如,我有一个名为gitter的git push包装器 我宁愿不必指定git push可用的所有标志,因为有很多. 但是,我仍然希望能够做类似的事情gitter --all --no-verify是否有一种方法让argparse采取任意标志并将这些标志传递给git push? 如果我做gitter –fake-flag,我会立即得到一个错误而没有解析出标志的机会.解决方法:您可以使用parse_known_args在列表中保留无法识别的标志.p = ArgumentParser() p.a...