2012-05-08 35 views
-2

如何将数据写入用户输入的模板。写入模板

例:

假设有一个名为C下template.txt :,文件,内容为:因此,与raw_input

My Name is __________ 
I Am __ Years Old. 

我得到了用户的输入,现在怎么我替换这些空白区域所以当从Windows打开文件时,它应该有名称和年龄代替那些下划线?

+0

@Subir有关Python中字符串格式化的问题[这里](http://stackoverflow.com/questions/1225637/python-string-formatting)。 –

回答

0

如果文本

text = ''' 
My Name is __________ 
I Am __ Years Old. 
''' 

你可能想要做str.replace(下划线,realvaue)从最大的下划线开始与您要的值来代替它。

text = text.replace('__________', str(name)).replace('__', str(age)) 
+0

这是一个非常脆弱的解决方案。 – Daenyth

1

我建议在看看jinja2这是我使用这种任务的所有时间一个很好的模板库。把你的模板文件中的以下内容:

My Name is {{ name }} 
I Am {{ age }} Years Old. 

然后,在可变nameage给你的用户输入,你可以将此到您的模板如下:

from jinja2 import Environment, FileSystemLoader 
env = Environment(loader=FileSystemLoader('/path/to/your/template/directory')) 

template = env.get_template('template.txt') 
print template.render(name=name, 
         age=age) 

我发现Jinja2的尺度非常好,因为它提供了一个很好的模板语言,您可以在其中执行诸如循环,条件语句和过滤器等操作。另外,您可以轻松定义自己的基本语言添加项。

0
name = raw_input('Hook me up with your name brah\n') 
age = raw_input('Aight, now how many years young are you?\n') 

print 'Old enough to party eh?' 

template = "Do your own homework, {name:_^10}\nYou are {age:_^2} years old man"\ 
     .format(name=name, age=age) 

print template