systempuntoout
systempuntoout

Reputation: 74124

"With" statement in Python with multiple files to handle

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.

Upvotes: 9

Views: 4848

Answers (2)

blokeley
blokeley

Reputation: 7065

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

Upvotes: 18

rossipedia
rossipedia

Reputation: 59397

with open(spam,'r') as f_spam:
  with open(eggs,'r') as f_bar:
    #do stuff with each

Upvotes: 3

Related Questions