Оператор «С» в Python с несколькими файлами для обработки - PullRequest
7 голосов
/ 17 мая 2010

Как в этом случае использовать оператор с ?

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

Количество файлов может быть больше двух.

Ответы [ 2 ]

16 голосов
/ 17 мая 2010

Вы также можете сделать:

from contextlib import nested

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

В Python 2.7 и 3.1+ вам не нужна функция nested, потому что with поддерживает следующий синтаксис:

with open(spam) as f_spam, open(eggs) as f_eggs:
    # do something
3 голосов
/ 17 мая 2010
with open(spam,'r') as f_spam:
  with open(eggs,'r') as f_bar:
    #do stuff with each
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...