在列表解析中关闭文件句柄

时间:2017-01-26 14:53:31

标签: python list-comprehension

让我们说我想读取文件中的所有行并存储为 字符串列表。 我可以用:

filename = "/path/to/the/file/data.txt"
fileBuf = [line.strip() for line in open(filename, "r")]

我的问题是,因为文件句柄未命名,我该如何关闭它? 它会自动关闭吗?

2 个答案:

答案 0 :(得分:5)

可能是垃圾收集,但推荐的方法是使用with上下文。你甚至可以在一行中完成它:

with open(filename, "r") as f: fileBuf = [line.strip() for line in f]

答案 1 :(得分:0)

您可以使用with声明 代码:

with open(FILENAME, 'r') as f:
     fileBuf = [line.strip() for line in f]

希望这有帮助!