用python中的变量替换字符串

时间:2013-12-27 13:27:16

标签: python

以下语句按预期工作,并创建了myreservation对象。

myreservation = conn.run_instances(amiid, placement='us-east-1a', key_name='n15a',instance_type=my_instance_type,security_groups=['N-1-0-1-AutogenByAWSMP-'])

但以下不起作用。我之后在脚本中收到错误,因为没有创建myreservation对象。

 myreservation = ("conn.run_instances('%s', placement='us-east-1a', key_name='n15a',instance_type='%s',security_groups=['%s'])" % (amiid, my_instance_type, my_security_groups)) 

我需要用变量替换安全组,因为这样我以后就可以轻松更改它。

错误是:

The security group '%s' does not exist 

当我打印该语句并在python控制台上运行时,它按预期工作

以下情况也不起作用:

 myreservation = conn.run_instances('%s', placement='us-east-1a', key_name='nov15a',instance_type='%s',security_groups=['%s']) % (amiid, my_instance_type, my_security_groups)

1 个答案:

答案 0 :(得分:2)

你的第二个版本不起作用,因为你将“conn.run_instances”放入字符串中,这可能不是你想要的。很难从你的小代码示例中看出来,但我猜:

myreservation = conn.run_instances(amiid, placement='us-east-1a', key_name='n15a',instance_type=my_instance_type,security_groups=[my_security_groups])

是您正在寻找的(假设my_security_groups已正确设置)

编辑:

  

为什么%s不起作用?

如果正确使用,

'%s'可以正常工作。

在你的第三个例子中:

 myreservation = conn.run_instances('%s', placement='us-east-1a', key_name='nov15a',instance_type='%s',security_groups=['%s']) % (amiid, my_instance_type, my_security_groups)

您尝试使用单个替换元组来表示三个不同的字符串。这不起作用,你必须单独替换每个字符串。像这样的东西可能会起作用,但如果你要替换整个字符串,那么使用字符串替换就没有意义

myreservation = conn.run_instances('%s'%amiid, placement='us-east-1a', key_name='nov15a',instance_type='%s'%my_instance_type,security_groups=['%s'my_security_groups]) 
相关问题