草庐IT

ArgParse

全部标签

Python argparse 正则表达式

是否可以使用正则表达式来解析参数?例如,我想接受一个长度为32的十六进制参数(即匹配/[a-f0-9A-F]{32}/)我试过了p.add_argument('hex',type=str,nargs="[a-f0-9A-F]{32}")没有成功 最佳答案 type关键字参数可以采用任何接受单个字符串参数并返回转换值的可调用对象。如果可调用对象引发argparse.ArgumentTypeError、TypeError或ValueError,则会捕获异常并显示格式正确的错误消息。importargparseimportrefromuu

Python argparse 允许组合标志

argparse是否可以像这样解析组合标志:app.py-bcdasomething在这种情况下,我希望将something设置为-a,其余的将存储为True。基本上:app.py-b-c-d-asomething我知道大多数程序都允许这样做,例如grep-rEw,但是用argparse来做这件事有多难? 最佳答案 您可以使用store_const实现此目的:parser=argparse.ArgumentParser()parser.add_argument('-a',action='store_const',const=True

Python argparse : Combine optional parameters with nargs=argparse. 剩余部分

我一定遗漏了一些明显的东西。目标是使用argparse,第一个参数是必需的,第二个是可选的,其他任何剩余参数都是可选的。为了展示这个问题,我制作了两个测试解析器;它们之间的唯一区别是在一个中使用nargs=argparse.REMAINDER而在另一个中使用nargs='*'。defdoParser1(argsin):parser=argparse.ArgumentParser(description='Parserdemo.')parser.add_argument('req1',help='firstrequiredparameter')parser.add_argument('-

python - 如何让python的argparse生成非英文文本?

argparse模块“自动生成帮助和使用信息”。我可以给参数起非英文名称并提供非英文帮助文本;但是帮助输出会变成至少两种语言的混合,因为像usage、positionalarguments、optionalarguments和show这样的术语此帮助消息和退出是自动生成的英文版本。如何用翻译替换这个英文输出?最好,我想在脚本中提供翻译,以便脚本无论在何处启动都会生成相同的输出。编辑:根据Jon-Eric的回答,这里是他的解决方案示例:importgettextdefÜbersetzung(Text):Text=Text.replace("usage","Verwendung")Text

python argparse - 在没有命令行的情况下传递值

我想我不了解python的argparse的一些基本知识。我正在尝试将GoogleYouTubeAPI用于python脚本,但我不明白如何在不使用命令行的情况下将值传递给脚本。例如,here是API的示例。github和其他地方的示例显示此示例是从命令行调用的,在调用脚本时从命令行传递argparse值。我不想使用命令行。我正在构建一个应用程序,它使用装饰器来获取用户的登录凭据,当该用户想要上传到他们的YouTube帐户时,他们提交一个表单,然后该表单将调用此脚本并将argparse值传递给它。如何从另一个python脚本将值传递给argparser(请参阅下面的YouTube上传AP

python - argparse 中单破折号和双破折号的区别

有谁知道用单破折号-r和双破折号--r指定argparse参数之间的主要区别是什么?我遇到了thisJulia语言argparse将它们分为短型和长型,但没有确切说明为什么要使用一个而不是另一个。 最佳答案 --foo等长选项来自GNUtradition:GNUaddslongoptionstotheseconventions.Longoptionsconsistof‘--’followedbyanamemadeofalphanumericcharactersanddashes.Optionnamesaretypicallyonet

python - python argparse中的多行帮助显示

我正在使用argparseinPython2.7我想在一个参数的帮助文本中显示多行。我的代码是这样的:importargparseparser=argparse.ArgumentParser(description='details',usage='use"%(prog)s--help"formoreinformation')parser.add_argument('--argument',default=None,type=sometype,help='''Firstline\nSecondline\n\nMorelines\n''')我想在调用--help时打印多行帮助信息。但是,

Python Argparse - 如何向默认帮助消息添加文本?

我正在使用python的argparse来处理参数的解析。我收到一条结构如下的默认帮助消息:usage:ProgramName[-h]...Descriptionpositionalarguments:...optionalarguments:-h,--helpshowthishelpmessageandexit...我想要的是在此消息中添加一个全新的部分,例如:usage:ProgramName[-h]...Descriptionpositionalarguments:...optionalarguments:-h,--helpshowthishelpmessageandexit..

python - 如何使用 Python 关键字作为 argparse 的参数名称?

lambda在Python中有一个关键字函数:f=lambdax:x**2+2*x-5如果我想将它用作变量名怎么办?是否有转义序列或其他方式?您可能会问我为什么不使用其他名称。这是因为我想使用argparse:parser=argparse.ArgumentParser("Calculatesomethingwithaquantitycommonlycalledlambda.")parser.add_argument("-l","--lambda",help="Definesthequantitycalledlambda",type=float)args=parser.parse_ar

Python argparse,根据父参数值提供不同的参数

这是我想做的:一个看起来像git命令行为的命令。无论您输入的是gitcommit还是gitcheckout,您都不会得到相同的选项。但在我的例子中,我想根据参数值(文件名)提供不同的参数,如下所示:>cmdfile.a-husage:cmdfilename[-opt1][-opt2]positionalarguments:filenamefiletoprocessoptionalarguments:-opt1dosomethingonfilesoftype'a'-opt2dosomethingelseonfilesoftype'a'>cmdfile.b-husage:cmdfilena