代码如下:
```python
def record(self, data):
iodata = [time.time() - self.time, 'o', data]
with open(RECORD_DIR + self.filename, 'ab', buffering=0) as f:
print((json.dumps(iodata)))
f.write((json.dumps(iodata) + '\n').encode('utf-8'))
```
简化过的代码如上,可能每一毫秒都会调用 record 数次追加写入数据到文件
print 打印数据一切正常,大概如下
而 f.write 就会有一部分数据丢失(格式不对了,每一行都应该是一个 list)
起初是直接用的 a 模式,f.write(json.dumps(iodata) + '\n')这样的,有问题,怀疑是 buffer 的问题,所以添加了参数 buffeering=0,因为只有字节流才能用 buffering=0,所以这里改成了 ab 模式,同时 encode 了 json
还尝试过 f.writelines 和强制加了个 f.close 一样无法解决,求助各位大神
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
https://www.v2ex.com/t/617826
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.