参考python document

描述

urllib.request.urlretrieve(url, filename=None, reporthook=None, data=None)

函数说明

将URL表示的网络对象复制到本地文件。如果URL指向本地文件,则对象将不会被复制,除非提供文件名。返回一个元组()(filename,header),其中filename是可以找到对象的本地文件名,header是urlopen()返回的对象的info()方法(用于远程对象)。
第二个参数(如果存在)指定要复制到的文件位置(如果没有,该位置将是一个生成名称的tempfile)。第三个参数,如果存在,则是一个回调函数,它将在建立网络连接时调用一次,并且在此后每个块读取后调用一次。这个回调函数将传递三个参数;到目前为止传输的块计数,以字节为单位的块大小,以及文件的总大小。第三个参数可能是-1,在旧的FTP服务器上,它不返回文件大小以响应检索请求。

参数说明

url:外部或者本地url
filename:指定了保存到本地的路径(如果未指定该参数,urllib会生成一个临时文件来保存数据);

reporthook:是一个回调函数,当连接上服务器、以及相应的数据块传输完毕的时候会触发该回调。我们可以利用这个回调函数来显示当前的下载进度。

data:指post到服务器的数据。该方法返回一个包含两个元素的元组(filename, headers),filename表示保存到本地的路径,header表示服务器的响应头。

例子

import os
from six.moves import urllib
import sysDATA_URL = 'http://www.python.org/ftp/python/2.7.5/Python-2.7.5.tar.bz2'
filename = DATA_URL.split('/')[-1]def _progress(block_num, block_size, total_size):'''回调函数@block_num: 已经下载的数据块@block_size: 数据块的大小@total_size: 远程文件的大小'''sys.stdout.write('\r>> Downloading %s %.1f%%' % (filename,float(block_num * block_size) / float(total_size) * 100.0))sys.stdout.flush()filepath, _ = urllib.request.urlretrieve(DATA_URL, filename, _progress)
print()

输出:

>> Downloading Python-2.7.5.tar.bz2 100.0%

例子中的sys.stdout.write和print差不多是输出的意思,sys.stdout.flush()函数的作用是刷新输出

可以参考博客:https://blog.csdn.net/wuguangbin1230/article/details/77680058

python3下的代码如下:

import time
import sys  for i in range(5):  print(i,end='')  #sys.stdout.flush()  time.sleep(1) 

这个程序本意是每隔一秒输出一个数字,但是如果把这句话sys.stdout.flush()注释的话,你就只能等到程序执行完毕,屏幕上会一次性输出0,1,2,3,4。

如果你加上sys.stdout.flush(),刷新stdout,这样就能每隔一秒输出一个数字了。

可以用在网络程序中多线程程序,多个线程后台运行,同时要能在屏幕上实时看到输出信息。

urllib.request.urlretrieve()函数相关推荐

  1. 已解决urllib.request.urlretrieve下载文件报错403

    已解决(python使用urlopen/urlretrieve下载文件时出现403 forbidden)urllib.error.HTTPError: HTTP Error 403: Forbidde ...

  2. python urllib.request 爬虫 数据处理-运维学python之爬虫基础篇(二)urllib模块使用...

    1 何为爬虫 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.另外一些不常使用的名字还有蚂蚁.自动索引. ...

  3. python urllib.request 爬虫 数据处理-python 爬虫之 urllib库

    文章更新于:2020-03-02 注:代码来自老师授课用样例. 一.初识 urllib 库 在 python2.x 版本,urllib 与urllib2 是两个库,在 python3.x 版本,二者合 ...

  4. Crawler:爬虫基于urllib.request库实现获取指定网址上的所有图片

    Crawler:爬虫基于urllib.request库实现获取指定网址上的所有图片 目录 输出结果 核心代码 输出结果 核心代码 # coding=gbk import urllib.request ...

  5. python request下载文件_Python3.4.3使用urllib.request下载文件带进度显示

    import urllib.request import sys import os import threading def callbackfunc(blocknum, blocksize, to ...

  6. Python爬虫之urllib.request的使用

    需要的模块 urllib.request 获取get一个请求 这里以百度为例 r = urllib.request.urlopen("http://www.baidu.com") ...

  7. python request库下载_python3.6 urllib.request库实现简单的网络爬虫、下载图片

    ################################################################# #author: 陈月白 #_blogs: http://www.c ...

  8. 一木.溪桥学爬虫-03:请求模块urllib、 urllib.request、urllib.parse.urlencode、urllib.parse.quote(str)、.unquote()

    一木.溪桥 在Logic Education跟Jerry学爬虫 07期:Python 爬虫 一木.溪桥学爬虫-03:请求模块urllib. urllib.request.urllib.parse.ur ...

  9. python urllib.request 爬虫 数据处理-Python网络爬虫(基于urllib库的get请求页面)

    一.urllib库 urllib是Python自带的一个用于爬虫的库,其主要作用就是可以通过代码模拟浏览器发送请求.其常被用到的子模块在Python3中的为urllib.request和urllib. ...

最新文章

  1. 三维刚体变化中Rcw,tcw的含义
  2. Java集合知识:TreeMap
  3. CentOS卸载Apache Mysql 和php
  4. 网络资源(9) - TDD视频
  5. mysql中一个表怎么查询多以上的信息,MySQL怎么样实现多个表的或查询?
  6. CNN和RNN中如何引入BatchNorm
  7. 江苏省高等学校计算机一级成绩查询,江苏计算机一级考试成绩查询
  8. 6.04 从字符串中删除不需要的字符
  9. python3.6 django部署_Apache2+Django+Python3.6部署-
  10. 《Entity Framework 6 Recipes》中文翻译系列 (45) ------ 第八章 POCO之获取原始对象与手工同步对象图和变化跟踪器...
  11. linux删除指定大小的文件,Linux 脚本删除大于指定大小的文件
  12. [BZOJ4066]简单题
  13. 内连接,外连接,临时表,定义表,视图
  14. 加壳及脱壳《逆向工程》
  15. 私活之安卓论坛Demo
  16. 使用matlab生成正弦波、三角波、方波的COE文件
  17. 李雅普诺夫指数的计算
  18. 谁有好的反P2p终结者的软件啊!
  19. P9813驱动RGB灯珠
  20. 警惕更改电子邮件内容实施诈骗活动

热门文章

  1. 程序员的时间管理哲学——打造自己的分时管理系统
  2. 面试题目整理--逻辑
  3. “约定优于配置”与Magento改造尝试四之block、helper和model载入
  4. LinkedList实现类
  5. sourceTree初识
  6. 在xcode 项目 中针对 单个文件关闭或者打开ARC 开关
  7. url即统一资源定位符
  8. Discuz X2 模块模板代码详解,DIY更容易!
  9. Android基础教程(六)之------- 参数的传递(Bundle)
  10. 【python】Python简介及优缺点