code: remote = urllib.urlopen(remote_file) local_file = open(local_path_name, "wb") local_file.write(remote.read()) 问题: 用这种方式可以很好的下载远程文件, 现在需要加入一个进度显示的功能, 类似于下载软件一样, 显示出下载的百分比, 请问怎么做?
恐怕不行!你可以查一下urllib相关文档,如果有与进度有关的回调函数或属性说明urllib已经实现了汇报进度的功能,否则,无法实现,需要修改urllib代码。 个人观点,仅供参考。 定一个标识,下载完后修改标识,图形自己做。引用 Python code >>> def report_hook(count, block_size, total_size): ... print '%02d%%'%(100.0 * count * block_size/ total_size) ... >>> urllib.urlretrieve("http://sports.sina.com.cn/", reportho…… 呵呵,看来是实现了的. yes, 下午我仔细翻阅了文档 也发现了这个方法, 并使用lambda作了些改进 code: def my_reporthook(blocknum, blocksize, totalsize, url = None): ... urllib.urlretrieve(remote_file, local_path + eachName, lambda nb, bs, fs, remote_file = remote_file:my_reporthook(nb, bs, fs, remote_file)) 很好的解决了问题. 谢谢大家 不过分还是要给3F的