作为一个完全的编程新手,我正在尝试理解打开和关闭文件的基本概念。我正在做一个练习,创建一个脚本,使我能够将一个文件的内容复制到另一个文件中。
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变量是不必要的。但是,这会让我拥有两个已经打开但没有被引用的文件吗?我该如何关闭它们,还是说不需要关闭?
如果您能提供一些关于此主题的帮助,我将非常感激。
shutil.copyfileobj
和相关方法来执行此操作(这些方法明确地按块复制,因此峰值内存消耗是固定的,不取决于输入文件的大小)。 - ShadowRanger