python 下载图片卡住_python下载图片的问题思考

最近用python下载图片的时候遇到了点问题,觉得很有趣。

功能很简单就是用python的urllib2库下载网页中的图片到本地。

网页上显示的图片是这样的:

但是下载到本地后却变成了这样:

这让我很奇怪,难道我下载的姿势不对。

然后我就分析这两张照片的差别,先比对了大小:

可以看到下载后的图片比原始图片多了 93 字节,看来是python在写入文件的时候偷偷加了东西。

于是我用二进制比对工具进行比对,看看到底多了什么?

下面是截取的一部分:

可以看到多了 0D 这个字节,仔细分析会发现0D的后面就是 0A ,也就是 python 在写入文件的时候看到有0A就在前面补了个 0D ,多的这 93 个字节就是这么来的。如果熟悉ASCII码表的同学立即就会想到 0D 0A 就是“\r\n”,也就是程序在写入的时候把 0A 解析出来了。这样问题就很明显了,我在写入的时候没有把文件当成二进制来写入。

handle = open(path, 'w')

检查写入文件的部分代码果然是这样。

当然问题很简单,但是我觉得思路很好。可能问题的表象很复杂,很奇怪,上层的语言封装很多,语法糖千奇百怪,但是如果能去分析它的本质,也许会更简单些。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值