现在学习python。 我有以下程序。
为什么程序在最后一行之后没有打印出来? 看起来“目标”没有任何写入的值。 (即使我打开实际文件,也没有值 那是为什么?
我尝试在“target.close”上方添加该行,以为该文件在该行之前不会被写入。那也行不通。 那么“target.close”的目的是什么?
“target.truncate()”如何立即生效。在该命令之后,脚本暂停输入,如果我打开文件,我可以看到它已经删除的所有数据。
function foo() {
var _ = "test";
alert(_);
}
答案 0 :(得分:2)
target.close
缺少()
调用括号。这就是为什么没有写的原因。
然后,如果您想要阅读该文件,则需要重新打开它:
print(open(filename).read())
答案 1 :(得分:0)
<强>解决方案强>
target.close
缺少一个括号,即它应该是target.close()
。
但是考虑一下你的意图,似乎你想要target.flush()
,因为你也很快就会target.read()
- 如果你关闭了它,你将无法从文件中读取
为什么会发生
默认情况下,写入文件的一定数量的数据实际上存储在缓冲区中 - 在内存中 - 然后才会实际写入文件。如果您想立即更新文件,则需要调用flush方法,即target.flush()
调用target.close()
将自动刷新已缓冲的数据,因此target.close()
还会更新类似于target.flush()
的文件。