作为一个完全的编程初学者,我试图理解打开和关闭文件的基本概念。我正在做的一个练习是创建一个脚本,允许我将内容从一个文件复制到另一个文件。
in_file = open(from_file)
indata = in_file.read()
out_file = open(to_file, 'w')
out_file.write(indata)
out_file.close()
in_file.close()
我试图缩短这段代码并想出了这个:
indata = open(from_file).read()
open(to_file, 'w').write(indata)
这很有效,对我来说看起来更有效率。然而,这也是我感到困惑的地方。我想我遗漏了对打开文件的引用;不需要 in_file 和 out_file 变量。但是,这是否会给我留下两个打开的文件,但没有提及它们?我该如何关闭这些,还是不需要?
非常感谢任何有助于阐明该主题的帮助。
最佳答案
处理这个问题的pythonic方法是使用with
context manager :
with open(from_file) as in_file, open(to_file, 'w') as out_file:
indata = in_file.read()
out_file.write(indata)
与这样的文件一起使用,with
将确保为您完成所有必要的清理工作,即使 read()
或 write()
抛出错误。
关于python - 是否需要关闭没有引用它们的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36046167/