Op 09-09-15 om 15:41 schreef Steven D'Aprano:
On Wed, Sep 09, 2015 at 09:05:23AM -0400, richard kappler wrote:
Would either or both of these work, if both, which is the better or more
Pythonic way to do it, and why?
The first works, but isn't really the best way to do it:

  #######################

import whatIsNeeded

writefile = open("writefile", 'a')

with open(readfile, 'r') as f:
     for line in f:
         if keyword in line:
             do stuff
             f1.write(line)
         else:
             f1.write(line)

writefile.close()

######################
Better would be this:

with open("writefile", 'a') as outfile:
     with open("readfile", 'r') as infile:
         for line in infile:
             if keyword in line:
                 do stuff
             outfile.write(line)
It's also possible to use multiple with statements on the same line. Can someone with more expert Python knowledge than me comment on whether it's different from using them separate as mentioned by Steven?

This is what I had in mind:

with open("writefile", 'a') as outfile, open("readfile", 'r') as infile:
    pass  # Rest of the code here


Timo


_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor

Reply via email to