草庐IT

ArgParse

全部标签

python - 如何让 argparse 使用选项而不是前缀从文件中读取参数

我想知道如何使用python的argparse模块从命令行和可能的文本文件中读取参数。我知道argparse的fromfile_prefix_chars但这并不是我想要的。我想要行为,但我不想要语法。我想要一个如下所示的界面:$pythonmyprogram.py--foo1-Asomefile.txt--bar2当argparse看到-A时,它应该停止从sys.argv或我提供的任何内容中读取,并调用我编写的函数,该函数将读取somefile.text并返回参数列表。当文件耗尽时,它应该恢复解析sys.argv或其他内容。文件中参数的处理按顺序发生很重要(即:应该处理-foo,然后是

python - 覆盖默认的 argparse -h 行为

我有一个调用其插件的特定配置文件。可以将参数传递给这些插件。此配置文件还允许我在运行时调用任意命令。插件使用许多参数:其中之一是-h,它不代表--help。现在,我的问题是我想调用我自己的Python脚本并向它传递一些参数。我正在使用argparse并希望与配置的其余部分保持一致,我创建了一个-h标志。令我惊讶的是,argparse只给我argparse.ArgumentError:argument-h/--help:conflictingoptionstring(s):-h而不是管它自己的事。有没有办法阻止这种情况发生?我很清楚大多数人都希望-h提供帮助,但这是我自己的脚本,我想我比

python - 为什么 virtualenv 环境包含 argparse、distribute 和 wsgiref?

这个问题在这里已经有了答案:Whydoespipfreezereportsomepackagesinafreshvirtualenvcreatedwith--no-site-packages?(2个答案)关闭9年前。我正在使用virtualenv版本1.7.1.2和python2.7.3来创建虚拟python环境。但是当我创建这样一个环境并激活它时,我可以看到安装了以下包(使用pipfreeze):argparse==1.2.1distribute==0.6.24wsgiref==0.1.2这是为什么呢?这是什么意思?

Python argparse 条件要求

如何设置argparse如下:if-2isonthecommandline,nootherargumentsarerequiredif-2isnotonthecommandline,-3and-4argumentsarerequired例如,-2[good]-3a-4b[good]-3a[notgood,-4required]-2-5c[good]-2-3a[good]这里有很多类似的问题,但要么他们没有解决这种情况,要么我不明白。Python2.7如果重要的话。 最佳答案 子解析器(如评论中所建议的)可能会起作用。另一种选择(因为

python - argparse 中的自定义 'usage' 函数?

是否可以添加自定义“用法”函数而不是pythonargparse提供的默认用法消息。示例代码:parser=argparse.ArgumentParser(description='Sampleargparsepy')parser.add_argument('-arg_1',type=int,custom_usage_funct('with_some_message'))output=parser.parse_args()defcustom_usage_funct(str):printstrprint'''Usage:program.py[-a,Passargumenta][-b,Pa

nargs > 1 的 Python argparse 类型和选择限制

标题几乎说明了一切。如果我的nargs大于1,有什么方法可以对解析的单个args设置限制(例如选择/类型)?这是一些示例代码:parser=argparse.ArgumentParser()parser.add_argument('-c','--credits',nargs=2,help='numberofcreditsrequiredforasubject')对于-c参数,我需要指定一个主题以及需要多少学分。主题应限于预定义的主题列表,并且所需的学分数量应该是float的。我可能可以使用子解析器来完成此操作,但实际上这已经是子命令的一部分,所以我真的不希望事情变得更复杂。

python - 为什么在 argparse 中, 'True' 总是 'True' ?

这个问题在这里已经有了答案:Parsingbooleanvalueswithargparse(26个答案)关闭5年前。这是最简单的Python脚本,名为test.py:importargparseparser=argparse.ArgumentParser()parser.add_argument('--bool',default=True,type=bool,help='Booltype')args=parser.parse_args()print(args.bool)但是当我在命令行上运行这段代码时:pythontest.py--boolFalseTrue而当我的代码读取'--bo

python - 如何将 python 的 argparse 与预定义的参数字符串一起使用?

我想使用pythonsargparse模块来解析我的cli参数字符串。这适用于从终端传递的参数,但不适用于给定的字符串。importargparseparser=argparse.ArgumentParser(description='ArgparseTestscript')parser.add_argument("param",help='someparameter')argString='someTestFile'print(argString)args=parser.parse_args(argString)如果我运行这个脚本,我会得到这个输出:~/someTestFileusa

python - argparse:使用强制参数的值设置可选参数

使用Python的argparse,我想添加一个可选参数,如果没有给出,则获取另一个(强制)参数的值。parser.add_argument('filename',metavar='FILE',type=str,help='inputfile')parser.add_argument('--extra-file','-f',metavar='ANOTHER_FILE',type=str,default=,help='complementaryfile(default:FILE)')我当然可以在解析参数后手动检查None,但是没有更pythonic的方法来做这件事吗?

Python,argparse : how to have nargs=2 with type=str and type=int

我花了一些时间在argparse文档上,但我仍然在为我的程序中的一个选项努力使用这个模块:parser.add_argument("-r","--rmsd",dest="rmsd",nargs=2,help="extracttheposesthatareclosefromarefaccordingRMSD",metavar=("ref","rmsd"))我希望第一个参数是一个字符串(str类型)并且是必需的,而第二个参数应该是int类型,如果没有值给定一个默认值(假设default=50)。我知道当只有一个参数时该怎么做,但我不知道当nargs=2时如何继续......这甚至可能吗?