0

我注意到 python 总是记住它在文件中完成写入的位置并从那一点继续。有没有办法重置它,以便如果文件由另一个删除某些文本和广告的程序编辑,另一个 python 在下次写入时不会用 NULL 填补空白?

我在父级中打开了文件,线程子级正在写入它。我使用刷新来确保写入后数据被物理写入文件,但这只是这样做的好处。

是否有另一个我似乎想念的函数可以使 python 正确附加?

4

1 回答 1

1

一件安全的、独立于操作系统且可靠的事情当然是关闭文件,然后在写入时再次打开它。

如果因此而导致的性能障碍是不可接受的,您可以尝试在写入之前使用“seek”移动到文件末尾。我只是在交互式控制台中做了一些简单的测试,实际上,file.seek(0, os.SEEK_END)在编写之前使用是有效的。

并不是说我认为在大多数情况下让两个进程写入同一个文件是安全的——你最终会遇到某种竞争条件。一种解决方法是实现文件锁,以便一个进程在获取锁后只需写入文件。可以考虑以正确的方式完成此操作。因此,请检查您的应用程序是否处于更好的位置,使用多年来精心构建和硬化的数据来编写数据,以允许各种进程同时更新,例如 SQL 引擎(MySQL 或 Postgresql)。

于 2012-10-07T12:31:23.627 回答