草庐IT

ArgParse

全部标签

python - argparse - 重建命令行

在Python中,我如何解析命令行、编辑生成的解析参数对象并生成带有更新值的有效命令行?例如,我想pythoncmd.py--foo=bar--step=0调用pythoncmd.py--foo=bar--step=1使用所有原始--foo=bar参数,在使用默认值时可能没有添加额外的参数。argparse是否可行? 最佳答案 您可以使用argparse来解析命令行参数,然后根据需要修改它们。然而目前,argparse缺少反向工作并将这些值转换回命令行字符串的功能。然而,有一个包可以精确地做到这一点,称为argunparse.例如c

Python argparse 切换标志

argparse中有什么方法可以解析像[+-]a,b,c,d这样的标志吗?foo.py+s-b应该将True存储在s的dest中,将False存储在b的dest中,就像完成的一样通过Windowsattrib或Linuxchmod。目前,我使用2个单独的参数+s和-s分别与store_true和store_false.但是它创建了一个丑陋的帮助,它列出了每个标志两次(+a&-a)另一种解决方法是使用正则表达式手动解析扩展的arg(不知何故似乎更容易使用自定义描述,但是在这样做之前我只是想看看周围是否有任何东西使用它我可以使用argparse本身执行相同的操作。

python - Python 的 argparse 可以像 gnu getopt 一样置换参数顺序吗?

GNUgetopt和使用它的命令行工具允许选项和参数交错,称为排列选项(参见http://www.gnu.org/software/libc/manual/html_node/Using-Getopt.html#Using-Getopt)。Perl的Getopt::Long模块也支持这个(使用qw(:configgnu_getopt))。argparse似乎不支持(甚至不提及)置换选项。有很多与arg/opt顺序相关的SO问题,但似乎没有一个能回答这个问题:Canargparsebemadetopermuteargumentorderlikegetopt?用例是一个原型(prototy

python - 如何使用 python argparse 将 add_argument_group 添加到 add_mutually_exclusive_group

我正在尝试实现以下内容:$prog.py-husage:prog.py[-h][-s|-m][[-y[year]]|[[-1|-3][month][year]]]但是,无论我怎么玩add_argument_group和add_mutually_exclusive_group,#!/usr/bin/envpythonimportargparsedefmain(opt):print(opt)if__name__=='__main__':parser=argparse.ArgumentParser()bar=parser.add_mutually_exclusive_group()bar.a

python - 如何在 Python 中获取 argparse 文件的目录?

我使用argparse从用户那里获取文件:importargparse,osparser=argparse.ArgumentParser()parser.add_argument('file',type=file)args=parser.parse_args()然后我想知道这个文件所在的目录,比如:print(os.path.abspath(os.path.dirname(args.inputfile)))当然,因为args.inputfile是一个file对象,所以这是行不通的。怎么做? 最佳答案 您可以从.name属性中获取文件

python argparse : arg with no flag

我有以下代码:parser.add_argument('file',help='filetotest')parser.add_argument('-revs',help='rangeofversions',nargs='+',default=False)有没有办法在使用时不使用标志-revs,就像这样:./somescript.pysettings.json1234 最佳答案 是的。您有多种解决方案:正如Mrav提到的,您可以使用系统参数(sys.argv[0...])或者使用argparse。来自documentation(符合p

python - 为什么 argparse 没有正确解析我的 bool 标志?

这个问题在这里已经有了答案:Parsingbooleanvalueswithargparse(26个答案)关闭5年前。我正在尝试使用argparse模块让我的Python程序接受灵活的命令行参数。我想传递一个简单的bool标志,并说True或False以在我的代码中执行适当的分支。请考虑以下事项。importargparseparser=argparse.ArgumentParser(prog='test.py',formatter_class=argparse.ArgumentDefaultsHelpFormatter)parser.add_argument('-boolflag',

python - argparse:获取未定义数量的参数

我正在构建一个脚本,该脚本使用参数来配置行为并读取未定义数量的文件。使用以下代码可以让我读取一个文件。有没有什么方法可以做到这一点而不必设置另一个参数来告诉脚本应该读取多少个文件?parser=argparse.ArgumentParser()parser.add_argument("FILE",help="FiletostoreasGist")parser.add_argument("-p","--private",action="store_true",help="MakeGistprivate") 最佳答案 是的,将您的"FI

python - argparse:展平操作结果 ='append'

我想制作一个支持表单参数列表的脚本./myscript--envONE=1,TWO=2--envTHREE=3这是我的尝试:importargparseparser=argparse.ArgumentParser()parser.add_argument('--env',type=lambdas:s.split(','),action='append',)options=parser.parse_args()printoptions.env$./myscript--envONE=1,TWO=2--envTHREE=3[['ONE=1','TWO=2'],['THREE=3']]当然我可

Python argparse 可选子参数

我想为我的程序提供一个参数,其中包含一些必需参数和一些可选参数。像这样:[--printtext[color[size]]所以你可以传递其中任何一个:mycommand--printhellomycommand--printhellobluemycommand--printhellored12可能有多个这样的,所以它必须是一个单独的add_argument。例如:[--printtext[color]][--outputfilename[overwrite]]我可以实现接近我想要的参数:>>>parser=argparse.ArgumentParser()>>>act=parser.a