[英]Python Sh package, how to pass unknown number of arguments?
我使用sh包执行一些aws cli命令。
我有多个命名标志传递给命令。
s3=sh.aws.bake('s3')
s3.sync(origin, destination, exclude="a", exclude="b")
但是,我不知道我有多少个排除对象。 它们存储在列表中。
我试过了,看起来应该可以,但是不行。
sync = s3.sync
for pattern in exclude:
sync = sync.bake("--exclude=\""+pattern+"\"")
s3.sync(origin, destination)
它确实附加了args,因为我可以获取它来打印命令,但它只是不使用它们!
有任何想法吗?
最后,我将*args
和*kwargs
混合使用。
s3=sh.aws.bake('s3')
args = [
origin,
destination,
"--delete"
]
for pattern in exclude:
args.extend(["--exclude", pattern])
for pattern in include:
args.extend(["--include", pattern])
kwargs = {'_iter':True}
output = s3.sync( *args, **kwargs )
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.