How to easily write a multi-line file with variables (python 2.6)?
file, multiline, output, python
Solution
Triple-quoted strings are your friend:
template = """1st header line
second header line
There are {npeople:5.2f} people in {nrooms} rooms
and the {ratio} is {large}
"""
context = {
"npeople":npeople,
"nrooms":nrooms,
"ratio": ratio,
"large" : large
}
with open('out.txt','w') as myfile:
myfile.write(template.format(**context))
Problem
At the moment I'm writing a multi-line file from a python program by doing ``` myfile = open('out.txt','w') myfile.write('1st header line\nSecond header line\n') myfile.write('There are {0:5.2f} people in {1} rooms\n'.format(npeople,nrooms)) myfile.write('and the {2} is {3}\n'.format('ratio','large')) myfile.close() ``` This is a bit tiresome and subject to typing errors. What I would like to be able to do is something like ``` myfile = open('out.txt','w') myfile.write( 1st header line Second header line There are {npeople} people in {nrooms} rooms and the {'ratio'} is {'large'}' myfile.close() ``` Is there any way of doing the something like this within python? A trick could be to write it out to a file and then use sed targeted replacement, but is there an easier way?