python脚本继续使用120%的CPU

时间:2013-05-02 12:19:09

标签: python performance file-io python-2.7

我的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()??

有什么想法吗?

1 个答案:

答案 0 :(得分:4)

使用此功能打开(并自动关闭)您的文件:

with open(filename, 'a') as f:
    f.write(line+"\n")