似乎在不指定nargs的情况下使用store的默认操作似乎总是更有意义,因此输出始终如预期,而不是有时是list有时不是。我只是好奇我是否错过了什么..例子>>>importargparse>>>parser=argparse.ArgumentParser()>>>parser.add_argument('--foo')_StoreAction(option_strings=['--foo'],dest='foo',nargs=None,const=None,default=None,type=None,choices=None,help=None,metavar=None)>>>pa
标题几乎说明了一切。如果我的nargs大于1,有什么方法可以对解析的单个args设置限制(例如选择/类型)?这是一些示例代码:parser=argparse.ArgumentParser()parser.add_argument('-c','--credits',nargs=2,help='numberofcreditsrequiredforasubject')对于-c参数,我需要指定一个主题以及需要多少学分。主题应限于预定义的主题列表,并且所需的学分数量应该是float的。我可能可以使用子解析器来完成此操作,但实际上这已经是子命令的一部分,所以我真的不希望事情变得更复杂。
我花了一些时间在argparse文档上,但我仍然在为我的程序中的一个选项努力使用这个模块:parser.add_argument("-r","--rmsd",dest="rmsd",nargs=2,help="extracttheposesthatareclosefromarefaccordingRMSD",metavar=("ref","rmsd"))我希望第一个参数是一个字符串(str类型)并且是必需的,而第二个参数应该是int类型,如果没有值给定一个默认值(假设default=50)。我知道当只有一个参数时该怎么做,但我不知道当nargs=2时如何继续......这甚至可能吗?
我有一个支持参数列表的可选参数。我的意思是,它应该支持:-f12-f123但不是:-f1-f1234有没有办法在argparse中强制执行此操作?现在我使用nargs="*",然后检查列表长度。编辑:根据要求,我需要的是能够定义一系列可接受的参数数量。我的意思是,说(在示例中)2或3个args是正确的,但不是1或4或任何不在2..3范围内的东西 最佳答案 您可以使用customaction来执行此操作:importargparsedefrequired_length(nmin,nmax):classRequiredLength(ar
我认为nargs='*'足以处理可变数量的参数。显然不是,我不明白这个错误的原因。代码:p=argparse.ArgumentParser()p.add_argument('pos')p.add_argument('foo')p.add_argument('--spam',default=24,type=int,dest='spam')p.add_argument('vars',nargs='*')p.parse_args('12--spam889'.split())我认为生成的命名空间应该是Namespace(pos='1',foo='2',spam='8',vars=['8','9
我正在尝试将列表作为参数传递给命令行程序。有没有argparse将列表作为选项传递的选项?parser.add_argument('-l','--list',type=list,action='store',dest='list',help='Setflag',required=True)脚本调用如下pythontest.py-l"265340268738270774270817" 最佳答案 简短回答使用nargs选项或'append'选项的action设置(取决于您希望用户界面的行为方式)。nargsparser.add_argu
我正在尝试将列表作为参数传递给命令行程序。有没有argparse将列表作为选项传递的选项?parser.add_argument('-l','--list',type=list,action='store',dest='list',help='Setflag',required=True)脚本调用如下pythontest.py-l"265340268738270774270817" 最佳答案 简短回答使用nargs选项或'append'选项的action设置(取决于您希望用户界面的行为方式)。nargsparser.add_argu