Python中的"with"语句,需要处理多个文件

sys*_*out 7 python

在这种情况下如何使用with语句?

f_spam = open(spam,'r')
f_bar = open(eggs,'r')
...
do something with these files
...
f_spam.close()
f_bar.close()
Run Code Online (Sandbox Code Playgroud)

文件编号可能大于2.

blo*_*ley 16

你也可以这样做:

from contextlib import nested

with nested(open(spam), open(eggs)) as (f_spam, f_eggs):
    # do something
Run Code Online (Sandbox Code Playgroud)

在Python 2.7和3.1+中,您不需要该nested函数,因为它with支持以下语法:

with open(spam) as f_spam, open(eggs) as f_eggs:
    # do something
Run Code Online (Sandbox Code Playgroud)

  • `打开(垃圾邮件)为f_spam,打开(eggs)为f_eggs:`..................请参阅http://docs.python中的第四个项目符号点.组织/发行/ 3.1/whatsnew/3.1.html#等语言相变化 (3认同)