小编典典

如果要将网页的内容转换为变量,则只需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://example ...

  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. 成功解决运行tensorflow时ModuleNotFoundError: No module named ‘numpy.core._multiarray_umath‘
  2. 基于卷积神经网络的匹配代价算法
  3. java核心api_Java核心API之字符流使用介绍
  4. 去某大厂三面总监面,因为迟到了5分钟,面试官当着我的面把简历扔垃圾桶了
  5. JPA 2.1实体图–第2部分:在运行时定义延迟/急切加载
  6. 实现超级玛丽上下左右运动
  7. 论文公式编号右对齐_论文不会写?最详细的论文排版技巧
  8. 一个模型使召回阶段又准确又多样
  9. 在华为服务器 RH 2288H V2上装 windows 2008
  10. 都说程序员秃头996,你见过游戏3D建模师爆肝007吗?
  11. Prolog语言及程序设计汇总
  12. 德勤财务机器人正式上岗,工作视频曝光,效率惊人
  13. C语言程序设计预备作业
  14. 联想微型计算机怎么恢复系统,联想一体机系统还原的方法 联想一体机如何还原系统...
  15. 北京喜提初雪,Edg喜夺冠军
  16. 多可文档管理迁移说明
  17. Multisim 实验 2.0.1 逻辑门电路 PPT
  18. 昂瑞微蓝牙芯片HS6620D调试记录
  19. Kibana基础:3:生成定制化的Dashboard
  20. 《权威指南》笔记 -- 8.3 函数的实参和形参

热门文章

  1. python调用数据库存储过程_python调用MySql存储过程
  2. excel中怎么把超链接的结果(图片)直接显示出来_把500张产品图片导入Excel里?用这个方法可超速完成,码住...
  3. 利用server酱推送消息和定时库:APScheduler
  4. Anaconda中如何查看已经安装的包
  5. 【干货】Python编程惯例
  6. 3n+1b 备忘录方法
  7. EC600S-CN CAT1通信模组,2G退网升级4G如何选择,QuecPython开发资源下载
  8. 泰克示波器截屏软件-Tektronix示波器上位机-OpenChoice安装。示波器波形发文章论文
  9. linux interfaces配置文件详解
  10. Python之Numpy常用操作