for循环中的变量插值?

时间:2017-02-01 23:11:49

标签: python loops ssh system interpolation

我有一个主机列表,我试图迭代ssh连接。在ruby中我可以使用#{variable}来访问命令中的变量,我应该为python做什么?

我在以下python代码中包含了ruby语法,作为我喜欢该功能的占位符。这样做的pythonic方法是什么?

h = """
foo-pants-linux-001
foo-pants-linux-002
foo-pants-linux-003
foo-pants-linux-004
foo-pants-linux-005
"""

hosts = h.split()

for host in hosts:
    subprocess.check_output("ssh foobar@#{host} `echo hi!`")

1 个答案:

答案 0 :(得分:1)

您可以使用modulo(def key = 'some key' def map = [:] def gstringKey = "${key.toUpperCase()}" map[gstringKey] = 'value' // here assert map.get('SOME KEY') == null )或%

.format(..)

subprocess.check_output("ssh foobar@%s `echo hi!`"%host) subprocess.check_output("ssh foobar@{host} `echo hi!`".format(host=host)) subprocess.check_output("ssh foobar@{} `echo hi!`".format(host)) 是格式说明符,意味着您获取主机的字符串值。

如果您想要引入多个命名的变量,可以使用%s,然后使用明确命名的参数调用{host}

您还可以使用format(),这意味着您可以在{}的参数中使用下一个元素。