如果我不关闭一个txt文件会发生什么?

6

我即将为一辆赛车编写一个程序,该程序会创建一个txt文件并不断添加新行。不幸的是,我无法关闭该文件,因为当汽车关闭时,运行程序的树莓派也会被关闭。所以我没有关闭txt文件的机会。

这是一个问题吗?


1
@FunctionR 可以随时关闭缓冲或强制刷新文件... - Jon Clements
6
为什么这个问题会有三个踩?“我正在写入一个文本文件,未能关闭它会有问题吗?” 这是一个合理的问题,有一个完全合理的答案。 - DSM
一个显而易见的问题是,树莓派如何关机?如果他们拔掉电源,你什么也做不了,但如果系统正常关闭,有几个选项。 - Simon Callan
电源将被拉断。不幸的是,没有让它关闭的方法。 - Nglhrdtptrck
如果他们只是简单地拔掉电源,那么你可能会遇到比丢失数据更大的问题。每次启动时,树莓派都需要检查文件系统的一致性,不可避免地,在某个时候,文件系统或某些文件将会损坏。 - Simon Callan
1个回答

4
是和否。在写入过程中,数据在不同的位置被缓冲:Python的文件对象、底层的C函数、操作系统、磁盘控制器。即使关闭文件,也不能保证所有这些缓冲区都得到物理写入。只有前两个级别被强制将它们的缓冲区写入下一个级别。同样,可以通过刷新文件句柄而不关闭它来完成相同的操作。
只要随时可能发生断电,您就必须处理一些数据丢失或部分写入的事实。关闭文件是为了给出操作系统的免费有限资源,但在您的设置中这不是关注点。

谢谢,那我猜我就不关闭了。 - Nglhrdtptrck

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接