无法使用'with'删除已打开(并关闭?)的文件

时间:2012-06-19 15:23:46

标签: python python-3.x with-statement

如何关闭此文件。有什么想法吗?

 with open('output.txt','w', encoding='UTF-8') as output:
       output.writelines(str(i)+'\n' for i in range(5))

3 个答案:

答案 0 :(得分:7)

当你离开" with - 阻止&#34>时,文件会自动关闭。或遇到异常。这就是为什么它是打开文件的首选方式。

有关with语句的详细信息,请参阅此PEP 343 -- The "with" StatementThe Python “with” Statement by Example提供了更多信息。

更新:

您无法删除使用with打开的文件,原因是该文件之前已处于打开状态(未使用with且未明确close)。作为使用不同文件的测试而with没有产生问题。

答案 1 :(得分:3)

http://effbot.org/zone/python-with-statement.htm

用来解释:

在Python 2.5中,文件对象配备了输入退出方法;前者只返回文件对象本身,后者关闭文件。

因此with语句的“拆解”操作实际上是自动关闭文件。

答案 2 :(得分:2)

with语句会自动为您关闭文件。

在此处阅读更多内容:http://preshing.com/20110920/the-python-with-statement-by-example