gevent(1.0b4) を使用して html ファイルをダウンロードする場合、プログレス バーを使用して進行状況を表示したいと考えています。
以下のコードを書きましたが、コードには常にいくつかのエラーが存在します。誰かが助けてくれることを願っています!
file_path='temp'
url_count=len(urls)
def progress_bar(file_path, file_count): #
file_count = long(file_count)
width = 32
last_count = 0
try:
while True:
if os.path.isdir(file_path):
current_count = len(glob.glob1(myPath,"*.html"))
percentage = current_count*100/file_count
current_width = width*percentage/100
sys.stderr.write('% 3d%% [%s%s] %s/s \r' % (percentage, '#'*current_width, ' '*(width-current_width), current_count - last_count))
last_count = current_count
time.sleep(1)
except:
sys.stderr.write('100%% [%s]\n' % ('#'*width))
def print_head(url):
data = urllib2.urlopen(url)
htmlFile = open(file_path+'/'+url+'.html', 'w')
htmlFile.write(data.read())
htmlFile.close()
raise Exception("done!")
jobs = [gevent.spawn(print_head, url) for url in urls]
x = [g.link_exception(progress_bar,file_path,url_count) for g in jobs]
gevent.joinall(jobs)
トレースバック
Traceback (most recent call last):
File "E:\tt\test.py", line 39, in <module>
x = [g.link_exception(progress_bar,file_path,url_count) for g in jobs] #
TypeError: link_exception() takes at most 3 arguments (4 given)