你不调用函数
target.close和
txt.close,而不是你只是得到他们的 指点
。由于它们是函数(或更准确地说,是方法),因此您需要
()在函数名称后调用它:
file.close()。
那就是问题所在;
您以写入模式打开文件,该模式将删除文件的所有内容。您写入了文件,但从未关闭它,因此更改从未提交,文件保持为空。接下来,您以读取模式打开它,只需读取空文件。
要手动提交更改,请使用
file.flush()。或者直接关闭文件,它将自动刷新。
同样,调用
target.truncate()是无用的,因为
write如注释中所述,以模式打开时它已经自动完成。
编辑
:在注释中也提到过,using
with语句功能非常强大,您应该改用它。您可以从http://www.python.org/dev/peps/pep-0343/中阅读更多内容,但是基本上,当与文件一起使用时,它会打开文件并在您取消缩进后自动关闭它。这样,您不必担心关闭文件,由于缩进,当您可以清楚地看到文件的使用位置时,它看起来要好得多。
快速示例:
f = open("test.txt", "r")s = f.read()f.close()
可以通过使用以下
with语句来做得更短,更好看:
with open("test.txt", "r") as f: s = f.read()
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)