测试一下
2011-08-03 13:18
330 查看
import os import sys import urllib from time import time, sleep class RateLimit(object): """Rate limit a url fetch""" def __init__(self, rate_limit): """rate limit in kBytes / second""" self.rate_limit = rate_limit self.start = time() def __call__(self, block_count, block_size, total_size): total_kb = total_size / 1024 downloaded_kb = (block_count * block_size) / 1024 elapsed_time = time() - self.start if elapsed_time != 0: #实际下载速度 rate = downloaded_kb / elapsed_time print "%d kb of %d kb downloaded %f.1 kBytes/s\n" % (downloaded_kb ,total_kb, rate), expected_time = downloaded_kb / self.rate_limit sleep_time = expected_time - elapsed_time print "Sleep for", sleep_time #等待时间 if sleep_time > 0: sleep(sleep_time)