Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

"With" statement in Python with multiple files to handle

Tags:

python

How do i use the with statement in this case?

f_spam = open(spam,'r')
f_bar = open(eggs,'r')
...
do something with these files
...
f_spam.close()
f_bar.close()

Files number could be greater than two.

like image 441
systempuntoout Avatar asked May 17 '10 09:05

systempuntoout


2 Answers

You can also do:

from contextlib import nested

with nested(open(spam), open(eggs)) as (f_spam, f_eggs):
    # do something

In Python 2.7 and 3.1+ you don't need the nested function because with supports the following syntax:

with open(spam) as f_spam, open(eggs) as f_eggs:
    # do something
like image 145
blokeley Avatar answered Sep 20 '22 06:09

blokeley


with open(spam,'r') as f_spam:
  with open(eggs,'r') as f_bar:
    #do stuff with each
like image 22
rossipedia Avatar answered Sep 21 '22 06:09

rossipedia