你怎么知道何时在python中关闭文件?

时间:2016-10-02 07:07:37

标签: python

from sys import argv
from os.path import exists

script, from_file, to_file = argv

print "Copying from %s to %s" % (from_file, to_file)


in_file = open(from_file)
indata = in_file.read()

print "The input file is %d bytes long" % len(indata)

print "Does the output file exist? %r" % exists(to_file)
#above is the original code. 

他关闭了上面的文件。但是,在共同的学生问题中,就是这样。

Q值。当我尝试缩短此脚本时,我在最后关闭文件时会出错。

一个。你可能做了类似这样的事情,indata = open(from_file).read(),这意味着你到达脚本末尾时不需要执行in_file.close()。一旦一行运行,它应该已经被Python关闭。

那么,你怎么知道何时关闭文件以及何时不关闭?

谢谢大家,我明白了! :)

2 个答案:

答案 0 :(得分:3)

来自methods-of-file-objects

  
    
      

在处理文件对象时,最好使用with关键字。这样做的好处是文件在其套件之后正确关闭       完成,即使在途中引发异常。它也比编写等效的try-finally块短得多:

    
  
>>> with open('workfile', 'r') as f:
...     read_data = f.read()
>>> f.closed
True

答案 1 :(得分:0)

何时关闭文件?永远 - 一旦你完成了它。否则它只会占用记忆力。