我的websocket脚本有问题。随着时间的推移,它消耗越来越多的CPU。我发现的一个补救措施是清除相关的日志文件。这解决了一段时间的问题,但CPU使用率在一天左右的时间内增加了120%。 (在linux服务器上使用top命令)
执行文件写入的脚本部分对我来说有点奇怪。这是代码:
f = open(file, 'a')
f.write(line+"\n")
os.fsync(f.fileno())
f.flush()
f.close
我不是Python专家,但对于初学者来说,最后三件事在我看来是相同的。 python手册指出http://docs.python.org/2/library/os.html#os.fsync f.flush和os.fsync应该是相反的顺序......
我可以使用:
f = open(file, 'a')
f.write(line+"\n")
f.close
并且不应该是:f.close()??
有什么想法吗?
答案 0 :(得分:4)
使用此功能打开(并自动关闭)您的文件:
with open(filename, 'a') as f:
f.write(line+"\n")