繁体   English   中英

Python Sh包,如何传递未知数量的参数?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM