小编典典

如果要将网页的内容转换为变量,则只需read响应urllib.request.urlopen:

import urllib.request

...

url = 'http://example.com/'

response = urllib.request.urlopen(url)

data = response.read() # a `bytes` object

text = data.decode('utf-8') # a `str`; this step can't be used if data is binary

下载和保存文件的最简单方法是使用以下urllib.request.urlretrieve功能:

import urllib.request

...

# Download the file from `url` and save it locally under `file_name`:

urllib.request.urlretrieve(url, file_name)

import urllib.request

...

# Download the file from `url`, save it in a temporary directory and get the

# path to it (e.g. '/tmp/tmpb48zma.txt') in the `file_name` variable:

file_name, headers = urllib.request.urlretrieve(url)

但是请记住,这urlretrieve被认为是遗留的,并且可能会被弃用(尽管不确定为什么)。

因此,执行此操作的最正确方法是使用urllib.request.urlopen函数返回一个表示HTTP响应的类似文件的对象,然后使用将其复制到实际文件中shutil.copyfileobj。

import urllib.request

import shutil

...

# Download the file from `url` and save it locally under `file_name`:

with urllib.request.urlopen(url) as response, open(file_name, 'wb') as out_file:

shutil.copyfileobj(response, out_file)

如果这看起来太复杂,则可能要简化一些并将整个下载存储在一个bytes对象中,然后将其写入文件。但这仅适用于小文件。

import urllib.request

...

# Download the file from `url` and save it locally under `file_name`:

with urllib.request.urlopen(url) as response, open(file_name, 'wb') as out_file:

data = response.read() # a `bytes` object

out_file.write(data)

可以动态提取.gz(可能还有其他格式)压缩数据,但是这种操作可能需要HTTP服务器支持对文件的随机访问。

import urllib.request

import gzip

...

# Read the first 64 bytes of the file inside the .gz archive located at `url`

url = 'http://example.com/something.gz'

with urllib.request.urlopen(url) as response:

with gzip.GzipFile(fileobj=response) as uncompressed:

file_header = uncompressed.read(64) # a `bytes` object

# Or do anything shown above using `uncompressed` instead of `response`.

2020-02-21

python3下载文件-使用Python 3从网上下载文件相关推荐

  1. python3 下载文件-使用Python 3从网上下载文件

    小编典典 如果要将网页的内容转换为变量,则只需read响应urllib.request.urlopen: import urllib.request ... url = "http://ex ...

  2. 如何用迅雷下载python_用Python调用迅雷批量下载excel表内的链接,并同时对文件重命名(使用的是openpyxl)...

    #首先把文件名放在excel表中的第一列,把对应的链接地址放在第二列 #为什么要用迅雷来下载,因为可以加速啊 #为什么你有这些链接啊,因为我用了八爪鱼爬虫啊 #为什么用八爪鱼爬虫啊,因为python学 ...

  3. python多线程下载ts_基于Python的ERA-5多线程下载(1)

    目录 基于Python的ERA-5多线程下载分为两部分,<基于Python的ERA-5多线程下载 (1)>,直接再本地使用,即写代码的人使用:<基于Python的ERA-5多线程下载 ...

  4. python you-get下载视频-使用python库之you-get下载视频

    电脑想要下载b站的视频,防止视频被和谐了本地还能看,但是电脑端b站却没有本地下载的视频链接,这时候就可以用you-get下载了. 1.安装python.怎么安装就不写了.可以直接安装anaconda, ...

  5. python在哪下载-2018版Python教程从哪儿下载

    原标题:2018版Python教程从哪儿下载 1989年冬天,创始人Guido van Rossum为了打发圣诞节的无趣而创造了它.之所以选中Python(大蟒蛇)作为该编程语言的名字,是因为他是一个 ...

  6. 用python可以免费下载音乐吗-Python 教你轻松下载网易音乐歌曲

    前两篇文章收集了歌手信息和歌词,光有歌手信息和歌词没有歌曲怎么行,那不是耍流氓吗?正好今天周末,给大家发点福利,喜欢听音乐的同学有福了,这篇文章直接把网易云音乐歌手的热门歌曲 50 首全部免费下载下来 ...

  7. python读取txt文件写入-python 读取、写入txt文件的示例

    写入文件 使用open()函数和write()函数 但是有两种写法,分别是'a'和'w' 'a' 表示写入文件 若无该文件会直接创建一个 如果存在这个文件,会接着已有的内容的后面写入 with ope ...

  8. 22 Python IO、打印到屏幕、读取键盘输入、打开和关闭文件、文件定位、重命名和删除文件、Python里的目录、文件,目录相关的方法

    22Python文件I/O 22.1打印到屏幕 最简单的输出方法是用print语句,你可以给它传递零个或多个用逗号隔开的表达式.此函数把你传递的表达式转换成一个字符串表达式,并将结果写到标准输出如下: ...

  9. python中文版下载-趣学python编程中文版 PDF 下载

    相关截图: 资料简介: Python是一款解释型.面向对象.动态数据类型的高级程序设计语言.Python语法简捷而清晰,具有丰富和强大的类库,因而在各种行业中得到广泛的应用.对于初学者来讲,Pytho ...

最新文章

  1. Oracle insert大数据量经验之谈
  2. Python 守护线程
  3. windows中以管理员身份运行cmd
  4. layer iframe层的使用,传参
  5. 显式锁select for update 用法
  6. entity reference在views中的运用
  7. 5.1 vim—5.4vim编辑器
  8. 开始ubuntu 14.04 的装X模式---终端模式下中文输入,听歌,上irc 开启framebuffer看电影 截图...
  9. 2018年蓝桥杯B组题E题+快排
  10. javaweb---简易邮件发送
  11. HTTPS下导出excel失败解决办法
  12. wdcp支持两种安装方式
  13. Freeradius+mysql+daloradius简单安装配置
  14. python生成树状图_用 python 将思维导图转换成树形列表
  15. eyoucms栏目类型介绍
  16. Origin_8.0_crack(origin8.0序列号(origin8.0破解补丁))
  17. b560主板怎么样 b560主板支持的cpu
  18. 玩转Linux的下Ip计算器(图文)
  19. bat 使用 7z 压缩文件夹
  20. Mysql 隐式类型转换

热门文章

  1. CSS3-transition,过渡实例
  2. JS获取DOM元素的八种方法
  3. c/c++ 整形转字符串
  4. hbase全分布安装配置
  5. Ubuntu16.04安装Pycharm2017.2
  6. Struts2.3.4.1+Spring3.2.3+Hibernate4.1.9整合
  7. avalov+require实现tab栏
  8. PHP内核探索之变量(2)-理解引用
  9. win7如何配置access数据源
  10. malloc 和 calloc的区别?