我环顾四周,但找不到任何东西。基本上我想知道是否可以将getpass.getpass()与argparse一起使用。目前我有以下解决方法,我只是想知道是否有更好的方法:importargparseimportgetpassparser=argparse.ArgumentParser(description="Somedescription")parser.add_argument('-p',metavar="password",default="foobarblah123",help="passwordforuser(defaulttopromptuser)")...parsed_ar
我正在使用argparse的操作将各种数据添加到类中。如果命令行中未提供该arg,我想对默认值使用该操作。这可能吗?谢谢! 最佳答案 argparse在应用default时不使用action。它只使用setattr。如果默认为字符串,它可能会使用type。但是您可以直接调用action。这里我使用了从文档中借用的自定义操作类。在第一个parse_args中没有任何反应。然后我创建一个新的namespace,并调用默认的操作。然后我将该namespace传递给parse_args。要理解这一点,您需要将其导入交互式shell,并检查命
我正在查看内置argparse._AppendAction的源代码,它实现了"append"Action,并对wayitisimplemented感到困惑:def__call__(self,parser,namespace,values,option_string=None):items=_copy.copy(_ensure_value(namespace,self.dest,[]))items.append(values)setattr(namespace,self.dest,items)分解:_ensure_value类似于属性的dict.setdefault。也就是说,如果nam
当我使用Python的argparse或optparse命令行参数解析器时,参数的任何唯一前缀都被认为是有效的,例如$./buildall.py--helpusage:buildall.py[-h][-f]Buildallrepositoriesoptionalarguments:-h,--helpshowthishelpmessageandexit-f,--forceBuilddirtyrepositories与--help、--hel、--he一起用于帮助选项以及--forc和--fo用于强制选项。可以以某种方式关闭此行为吗?我想收到不完整参数的错误消息。
我有一个包含“%”的默认值,我也将其插入到我的参数的帮助文档中。例如:default="5%foo"animrender_group.add_argument("--foo",default=default,help="Fooamount.Default:%s"%default,)args=parser.parse_args()parse_args()上的Argparse错误[snip]args=parser.parse_args()[snip]"../python2.5/site-packages/argparse.py",line622,in_expand_helpreturnse
目前我的代码看起来像这样。它允许我解析我的程序脚本获取的多个参数。有没有更接近“最佳实践”的不同方式?我还没有看到实际使用argparse输出的代码,只看到如何设置它。defuseArguments():x=0whilex 最佳答案 您可以提供自定义action对于一个论点,我引用:passinganobjectthatimplementstheActionAPI.Theeasiestwaytodothisistoextendargparse.Action,supplyinganappropriate__call__method.T
classStartAction(argparse.Action):def__call__(self,parser,namespace,values,option_string=None):print"Hello"start.add_argument('-s','--start',action=StartAction)我知道通常将操作设置为“store_true”之类的东西会阻止参数的要求,但是有没有一种方法可以使用自定义操作并且仍然不需要传递参数?所以我想要的是:pythonexample.py-sHello 最佳答案 尝试将na
我想知道是否可以让一个位置参数跟在一个带有可选参数的参数后面。理想情况下,输入命令行的最后一个参数将始终应用于“testname”。importargparseparser=argparse.ArgumentParser(description='TAF')parser.add_argument('-r','--release',nargs='?',dest='release',default='trunk')parser.add_argument('testname',nargs='+')args=parser.parse_args()我希望这两个调用都将smoketest应用于te
在我的python脚本中,我希望能够在指定了另一个可选参数时使用可选输入参数仅。示例:$pythonmyScript.py--parameter1value1$pythonmyScript.py--parameter1value1--parameter2value2但不是:$pythonmyScript.py--parameter2value2我如何使用argparse做到这一点?谢谢! 最佳答案 使用自定义操作:importargparsefoo_default=NoneclassBarAction(argparse.Action
这个问题在这里已经有了答案:DisplayhelpmessagewithPythonargparsewhenscriptiscalledwithoutanyarguments(18个答案)关闭8年前。使用以下代码:importargparseparser=argparse.ArgumentParser(description="Preparesomethingcode.")parser.add_argument("-t","--tabular",help="printsomethingintabularwayforEXCEL",action="store_true")parser.ad