Python中的系统文件读取缓冲

Python中的系统文件读取缓冲,python,filesystems,buffer,tornado,Python,Filesystems,Buffer,Tornado,我的TCP服务器写在Tornado(Python web框架)上,每1-10秒接收一次数据。然后我需要在每次迭代中读取我的文件'example.txt',在这里我以列表格式(JSON)存储数据,将我的数据与旧数据合并,然后再次写入该文件。 有一个问题-在一段时间(或一段时间/一定数量的数据)之后,文件开始缓存(或缓冲),所以每次我想读取它时,我都会从文件中获取不相关的数据。但文件仍然可以编写,Python编写新的,但与非相关数据合并到文件中,我可以从修改文件时看到它 open('example.

我的TCP服务器写在Tornado(Python web框架)上,每1-10秒接收一次数据。然后我需要在每次迭代中读取我的文件'example.txt',在这里我以列表格式(JSON)存储数据,将我的数据与旧数据合并,然后再次写入该文件。 有一个问题-在一段时间(或一段时间/一定数量的数据)之后,文件开始缓存(或缓冲),所以每次我想读取它时,我都会从文件中获取不相关的数据。但文件仍然可以编写,Python编写新的,但与非相关数据合并到文件中,我可以从修改文件时看到它

open('example.txt','r',0)
-没有帮助
python-u
-flag没有帮助
Python非缓冲变量
-没有帮助
file.flush()、os.fsync()
-没有帮助

p.S.生产服务器正在CentOs上运行

def saveToFile(self, data, path):
        if os.path.exists(path) == True:
            with open(path, 'r', 0) as f:
                old = f.read()
            try:
                old = json.loads(old)
            except ValueError:
                old = {}
        else:
            old = {}

        data_to_save = dict(old.items() + data.items())


        with open(path, 'w', 0) as f:
            f.write(json.dumps(data_to_save))

我在获取数据的每个新部分调用此方法。

使用memcached服务怎么样?问题不是你认为的那样。系统不会无缘无故地向您提供过时数据。您是否在每次迭代期间打开和关闭文件?您是否有一个适当的锁,使两个文件访问不能同时发生?请将您的程序减少到可能显示错误的最小程序,并将该简短程序复制粘贴到您的问题中。当然,这是可能的解决方案,因为我们使用Redis,但目前我需要使用文件解决此问题。1) Y 2)我没有锁,因为读写文件逐行执行,文件处理在新连接到来之前结束。“我试着锁具,但没什么区别。”罗布ᵩ, 这个怎么样?