作为一个完全的编程初学者,我试图理解打开和关闭文件的基本概念。我正在做的一项练习是创建一个脚本,允许我将内容从一个文件复制到另一个文件。
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上下文管理器 https://docs.python.org/2.7/reference/compound_stmts.html#the-with-statement:
with open(from_file) as in_file, open(to_file, 'w') as out_file:
indata = in_file.read()
out_file.write(indata)
与这样的文件一起使用,with
将确保为您完成所有必要的清理工作,即使read()
or write()
抛出错误。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)