我正在运行测试,发现直到我按住C键终止程序后,该文件才真正被写入。谁能解释为什么会这样?
我希望它可以同时写入,因此可以在过程中间读取文件。
import os
from time import sleep
f = open("log.txt", "a+")
i = 0
while True:
f.write(str(i))
f.write("\n")
i += 1
sleep(0.1)
写到磁盘的速度很慢,因此许多程序将写操作存储到大块中,然后一次写一次。这称为 缓冲 ,当您打开文件时,Python会自动进行 缓冲 。
写入文件时,实际上是在写入内存中的“缓冲区”。填满后,Python会自动将其写入磁盘。您可以通过以下命令告诉它“将缓冲区中的所有内容立即写入磁盘”
f.flush()
这还不是全部,因为操作系统可能也会缓冲写入。您可以告诉 它使用以下 命令写入文件缓冲区
os.fsync(f.fileno())
最后,您可以告诉Python不要使用来缓冲特定文件,open(f, "w", 0)
或者不要使用来保留1行缓冲区open(f,"w", 1)
。自然,这将减慢对该文件的所有操作,因为写入速度很慢。
我研究log4j2xml配置已经有一段时间了,无法通过RollingFile和RollingRandomAccessFile appender了解如何写入文件。 当我启动log4j2时,它成功地初始化了日志,并使用控制台附加程序和系统将日志写入控制台。出来println()。但是当我做或我没有实时看到它。但在我之后,它会立即写入日志文件,这样我就可以在后面看到它了。我以为tail可以阻止文件,但它
我有以下节点。JS(使用Express运行)代码: 该路由用作对Spotify Web API的请求的回调,因此我可以获得访问令牌。 Spotify然后重定向到上面的回调函数,您可以通过查看“redirect_URI”在URI中看到它。 如果需要有关Spotify授权流的更多信息,请参见此处。 这是我用来向Spotify验证我的应用程序的URI。 https://accounts.spotify.
我有一个像下面这样的Python脚本: 我以以下方式执行: 然后我检查是否有任何初始输出,但没有: 我至少希望在几秒钟后看到“开始”。即使等了几分钟,然后杀了它,我也没有输出。如果可能,我该如何解决这个问题?
问题内容: 我的PC上安装了SQL Server 2012,通常不需要它。它仅用于调试目的。 我已经看到它占用了相当多的RAM,所以我想阻止它启动直到我需要它时,再启动它,然后在不需要时停止它。 我怎么做?(我也安装了SSMS,所以如果这样做的话,我可以使用它。) 问题答案: 要启动,停止,暂停,继续或重新启动SQL Server数据库引擎的实例,请执行以下操作: 在“开始”菜单上,指向“所有程序
我有一个片段,它设置一个列表视图,并创建一个处理程序来定期更新列表视图。然而,看起来处理程序在片段被销毁后仍然运行。 以下是代码。 在被销毁后更新会导致应用程序崩溃。如何在被销毁时使停止?我还想知道如果应用程序的任何暂停对也有什么影响。
程序从另一个类调用一个方法,这有助于更改程序的停止条件。它平均调用该方法3-8次,并且从未达到停止条件,但是它停止了。 示例类如下: 只限于在每个当的条件为false时,use示例类的当循环才会停止。这意味着: 它应该输出它经历了多少个同时循环以及每个循环的值。最终输出a1到e1的相同值。