Python BaseHTTPServer更快地提供文件

时间:2014-08-08 08:17:59

标签: python file-io basehttpserver

我有一些相对较大的.js文件(flot和jquery)与Python BaseHTTPServer一起提供。

目前我正在使用:

with open(curdir + sep + self.path, 'rb') as fd:
    self.wfile.write(fd.read())

但它相当慢,甚至加载来自同一台机器的文件(>一秒钟来获取这些文件)。我想这是将整个文件读入RAM,然后从中写入,有没有办法让我加快一点?

1 个答案:

答案 0 :(得分:2)

实际上,您的代码会在将所有内容发送到客户端之前对其进行缓冲。要转发响应,请查看SimpleHTTPServer does it的方式。

它使用shutil.copyfileobj,它就是这样做的。使用:

import shutil
shutil.copyfileobj(fd, self.wfile)