Python - 何时写入文件

时间:2017-05-27 23:59:51

标签: python python-3.6

现在学习python。 我有以下程序。

  1. 为什么程序在最后一行之后没有打印出来? 看起来“目标”没有任何写入的值。 (即使我打开实际文件,也没有值 那是为什么?

  2. 我尝试在“target.close”上方添加该行,以为该文件在该行之前不会被写入。那也行不通。 那么“target.close”的目的是什么?

  3. “target.truncate()”如何立即生效。在该命令之后,脚本暂停输入,如果我打开文件,我可以看到它已经删除的所有数据。

  4.     function foo() {
            var _ = "test";
            alert(_);
        }
    

2 个答案:

答案 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()的文件。