python 是否有任何方法可以轻松快速地制作 CLI 实用程序而无需大量参数解析样板?
在 Perl 6 中,MAIN
sub automagically parses command line arguments. 的签名
有没有什么方法可以在没有大量样板的情况下在 Python 中做类似的事情?如果没有,最好的方法是什么?我在想一个函数装饰器,它将执行一些内省(introspection)并做正确的事情。如果还没有类似的东西,我在想下面的东西。这是个好主意吗?
@MagicMain
def main(one, two=None, *args, **kwargs):
print one # Either --one or first non-dash argument
print two # Optional --arg with default value (None)
print args # Any other non-dash arguments
print kwargs # Any other --arguments
if __name__ == '__main__':
main(sys.argv)
最佳答案
Baker库包含一些方便的装饰器,可以从方法签名“自动”创建 arg 解析器。
例如:
@baker.command
def test(start, end=None, sortby="time"):
print "start=", start, "end=", end, "sort=", sortby
$ script.py --sortby name 1
start= 1 end= sortby= name
关于Python 神奇的 main() 签名就像 Perl 6,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3858790/