[Tutor] output formatting
denis.spir at free.fr
Sat Apr 25 19:21:44 CEST 2009
Le Sat, 25 Apr 2009 11:02:47 -0400,
Matt Domeier <domeier at umich.edu> s'exprima ainsi:
> Hi Wayne,
> Yes, that should work perfectly, but it is in writing files that I'm
> having the problem. I'm still very new to python, so I only know to
> use something like filename.write(str(listname)) to write my list to a
> Is there a straightforward method of combining the ease of the print
> function setup that you suggested with write? Or could I somehow use
> the print function itself to write to the file (rather than just
> output to my shell/prompt)?
I think you're confusing the writing function (file.write() or print) with the expression of the text to be written.
You can safely reuse the expression proposed by Wayne inside write():
filename.write( '\n'.join(['the quick brown fox', 'jumps over', 'the lazy dog']) )
The remaining difference is that print will implicitely add an '\n' (end-of-line).
Also (but this difference does not apply here), write() expects a string while print will silently convert to str whatever you pass it:
f = file("test", 'w')
f.write("*** not a str ***")
f = file("test", 'r')
*** not a str ***
> Quoting W W <srilyk at gmail.com>:
> > On Fri, Apr 24, 2009 at 10:57 PM, Matt Domeier <domeier at umich.edu> wrote:
> >> Hello,
> >> I have a series of lists that I need to output into files with a specific
> >> format. Specifically, I need to have line breaks after each entry of the
> >> list, and I need to do away with the ['..'] that accompany the data
> >> after I transform the list into a string. Can I simply append a '\n' to
> >> the end of all the list entries in order to enact line breaks?
> > Is this what you're looking for?
> > In : print '\n'.join(['the quick brown fox', 'jumps over', 'the lazy
> > dog'])
> > the quick brown fox
> > jumps over
> > the lazy dog
> > HTH,
> > Wayne
> Tutor maillist - Tutor at python.org
la vita e estrany
More information about the Tutor