列表理解中的“with”关键字?

Wmb*_*uch 5 python list-comprehension with-statement

我遇到了这种用于读取文件中的行的语法。

with open(...) as f:
    for line in f:
        <do something with line>
Run Code Online (Sandbox Code Playgroud)

假设我希望该<do something with line>行将每一行附加到列表中。有没有什么方法可以with在列表理解中使用关键字来完成此任务?或者,至少有某种方法可以在一个语句中完成我想要的事情吗?

faf*_*afl 4

你可以写类似的东西

with open(...) as f:
    l = [int(line) for line in f]
Run Code Online (Sandbox Code Playgroud)

但你不能将其放入with列表理解中。

也许可以写一些类似的东西

l = [int(line) for line in open(...).read().split("\n")]
Run Code Online (Sandbox Code Playgroud)

但您需要稍后手动调用 f.close() ,这样您就不会得到变量 f 。当超出范围时,filhandle 可能会自动关闭,但我不会依赖它。