[Tutor] generating formatted output
Hugo Arts
hugo.yoshi at gmail.com
Sun Sep 26 23:21:30 CEST 2010
On Sun, Sep 26, 2010 at 10:16 PM, Rance Hall <ranceh at gmail.com> wrote:
> My app will be printing a series of documents that are the same each
> time the doc is printed with the exception of the variables. Sort of
> a MailMerge if you will.
>
> It seems to me that the easiest approach is to create a series of text
> files with the layout and placeholders I need (again much like
> MailMerge)
>
> And then do something like this:
>
> file = open(fileName, "r") #Opens the file in read-mode
> text = file.read() #Reads the file and assigns the value to a variable
> file.close() #Closes the file (read session)
> text = text.replace(sourceText, replaceText) #there will be a
> series of these.
> file = open(fileName2, "w") #Opens a new file in write-mode.
> file.write(text)
> file.close() #Closes the file (write session)
>
> Then you can print the file or email it or whatever you need to do.
>
> There wont be too many of these replacements (think invoice template
> with substitutes for customer information and a billing detail
> section.)
>
> So my question is about the approach. Is this reasonable? Is there a
> better way to do this?
>
I would suggest you take a look at string.Template or the str.format
method. It may be somewhat simpler than doing a whole lot of replaces,
perhaps faster as well.
http://docs.python.org/library/string.html#template-strings
http://docs.python.org/library/stdtypes.html#str.format
Hugo
More information about the Tutor
mailing list