在Python中使用"with"语句处理多个文件

9 投票
2 回答
4794 浏览
提问于 2025-04-15 22:47

在这种情况下,我该如何使用 with 语句呢?

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

文件的数量可能会超过两个。

2 个回答

3

在编程中,有时候我们需要处理一些数据,比如从一个地方获取数据,然后把它放到另一个地方。这个过程就像是搬家,把东西从一个箱子搬到另一个箱子。

有些时候,数据的格式可能会不一样,就像你搬家时,可能有些东西是放在纸箱里,有些是放在塑料袋里。我们需要确保在搬的过程中,东西不会丢失或者损坏。

为了让这个过程更顺利,我们可以使用一些工具或者方法来帮助我们,比如编写代码来自动化这个搬家的过程。这样,我们就可以节省时间,减少错误。

总之,处理数据就像搬家一样,需要仔细和耐心,确保每一件东西都能安全到达目的地。

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

你还可以这样做:

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

撰写回答