python和另一个程序写入同一个文件

时间:2012-10-07 12:20:38

标签: python

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

我在父文件中打开了文件,并且线程子文件正在写入它。我使用flush来确保写入后数据被物理写入文件,但这样做才有好处。

是否还有其他我似乎错过的函数会使python正确追加?

1 个答案:

答案 0 :(得分:1)

一个安全的东西,OS独立,可靠肯定是关闭文件,并在写入时再次打开它。

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

并不是说我认为在大多数情况下让两个进程写入同一个文件是安全的 - 你最终会遇到某种竞争条件。一种方法是实现文件锁,以便一个进程在获取锁之后只写入文件。可以考虑在正确的wya中完成此操作。因此,如果您的应用程序不能更好地使用某些内容来编写精心构建的数据并且多年来已经变硬,以允许通过各种进程(如SQL引擎(MySQL或Postgresql))进行同步更新,那么就可以了。