2012-10-03 55 views
1

我正在开发一个安装程序,我需要创建一个用YAML编写的设置文件。该文件有一些占位符需要填写用户提供的数据。 哪里读取文件的代码如下:使用占位符在Python中加载文本文件

f = open ('settings.py', 'w +') 
settings = open (path + '/ settings_model.yaml', 'r').read() 
settings% (user_var) 
f.write (settings) 
f.close() 

而且settings_model.yaml文件是一样的东西:

“” “PATH =”%s“ 于 ”“

当我运行脚本,占位符不填充

“”“PATH =“%s”于“”

我该怎么做才能实现这个占位填写正确?

+0

看起来像第三行应该是'设置=设置%(user_var)'。或者没有括号。 – Junuxx

+0

当然你必须将操作结果返回到设置变量'settings = settings%user_var' –

回答

2

乍一看,我会说你需要你的-operation%的结果某处分配:

settings = settings % user_var 

settings% (user_var) 

(围绕user_var的()代替有什么区别,如果你想要它是一个元组,请使用(user_var,),但这是不言而喻的,都应该工作)。

不知何故,整个事情并不感到很安全或安全的,但你只问你的代码的一个修复;)

+0

感谢您的回复。问题在于设置文件的内容被用引号括起来。此外,在修改变量设置后,我也转到了赋值。 – Topicus