将参数从列表传递给python plumbum命令
问题描述:
我使用Plumbum在Python的前台运行命令行实用程序。如果你有一个命令foo x y z
,你会从铅像这样运行:将参数从列表传递给python plumbum命令
from plumbum import cmd, FG
cmd.foo['x', 'y', 'z'] & FG
然而,在我写的代码,参数['x', 'y', 'z']
生成到一个列表。我无法弄清楚如何解开这个列表以将它作为参数发送给铅。有什么建议么?
答
原来我本来可以用__getitem__
这个。 我所要做的就是:
from plumbum import cmd, FG
params = ['x', 'y', 'z']
cmd.foo.__getitem__(params) & FG
答
感谢您的回答阿龙迈索尔,正好是我所需要的。
我尝试以下,(没有工作):
from plumbum import local
from plumbum.commands import ProcessExecutionErr
files = ['gs://some-repo/somefile.txt', 'gs://some-repo/somefile2.txt']
files_string = ' '.join(files)
gsutil = local['gsutil']
command = gsutil['-m', 'rm', files_string]
try:
job = command.run()
except ProcessExecutionError as err:
print('Error: {}'.format(err))
sys.exit(1)
但你的答案后,这里参考使用gsutil,人们另一个例子(没有工作):
from plumbum import local
from plumbum.commands import ProcessExecutionError
files = ['gs://some-repo/somefile.txt', 'gs://some-repo/somefile2.txt']
gsutil = local['gsutil']
command = gsutil['-m', 'rm']
try:
job = command.__getitem__(files).run()
except ProcessExecutionError as err:
print('Error: {}'.format(err))
sys.exit(1)
问题是当我将列表连接成一个字符串时,这个铅似乎并不好。