writing output to file

Allan Wermuth alw at gate2.dda.dk
Thu Jul 11 16:50:26 EDT 2002


Thank You all for the quick answers :-)

/Allan Wermuth

Alex Martelli <aleax at aleax.it> wrote in message
news:wulX8.57568$Jj7.1513132 at news1.tin.it...
> Allan Wermuth wrote:
>         ...
> > instead of writing the result to the screen, I would like to write
output
> > to a another file.
> >
> > #!/usr/bin/python
> > for line in open('/etc/passwd').readlines() :
> >    if line.strip()[0] == '#': continue
> >
> >  temp = line.split(':')
> >   if int(temp[2]) > 100 :
> >      print "%10s %30s" % (temp[0], temp[4])
> >
> > How can I do that?
>
> My personal suggestion:
>
> flout = open('/tmp/otherfile', 'w')
> for line in open('/etc/passwd').readlines() :
>     if line.strip()[0] == '#': continue
>
>     temp = line.split(':')
>     if int(temp[2]) > 100:
>         flout.write("%10s %30s\n" % (temp[0], temp[4]))
> flout.close()
>
> An alternative:
>
> flout = open('/tmp/otherfile', 'w')
> for line in open('/etc/passwd').readlines() :
>     if line.strip()[0] == '#': continue
>
>     temp = line.split(':')
>     if int(temp[2]) > 100:
>         print >> flout, "%10s %30s" % (temp[0], temp[4])
> flout.close()
>
>
> As you see, the difference boils down to using a variant
> of the print statement (with the clause  >> flout ,  to
> direct output elsewhere) versus using the write method
> of the file-object flout (which, differently from print,
> just takes whatever string you give it and puts it out
> to the file without alterations).
>
> My personal opinion is that print is good for simple
> quick & dirty output for debugging purposes, while using
> formatting operations to prepare strings and then the
> write method of file objects to emit them is the best
> way to go for "production" code.  But, if you disagree,
> the  >> flout ,  clause in the print statement lets you
> use the print statement to write to a file, too.
>
>
> Alex
>
>





More information about the Python-list mailing list