python

python下载图片并保存到文件夹

2017-02-25  本文已影响11419人  4ffde5305e8f

从网络下载图片并保存到磁盘文件中

  1. 建立保存图片的目录
    如果目录不存在,则建立文件目录。
    使用os.makedirs(file_path)建立目录,而不是使用os.mkdir(file_path)。
    因为mkdir只能建立单级文件目录。
    makedirs则能建立多级文件目录,也能建立单级文件目录。
    单级文件目录:img
    多级文件目录:my/book/img
  2. 获得图片名(包含路径)
    从图片url中取得图片后缀——jgp,png之类的
    os.path.splitext(path)
    将文件路径(包含文件名)拆分为:[路径\文件名, 文件后缀]
    拼接图片名(包含路径)
    filename = 目录路径 +文件分隔符+ 图片名+图片后缀
    使用os.sep获得系统文件分隔符,避免不同平台造成不同的文件分隔符。
  3. 下载图片
    使用urllib.urlretrieve(url,filename)下载图片

代码如下

def save_img(img_url,file_name,file_path='book\img'):
    #保存图片到磁盘文件夹 file_path中,默认为当前脚本运行目录下的 book\img文件夹
    try:
        if not os.path.exists(file_path):
            print '文件夹',file_path,'不存在,重新建立'
            #os.mkdir(file_path)
            os.makedirs(file_path)
        #获得图片后缀
        file_suffix = os.path.splitext(img_url)[1]
        #拼接图片名(包含路径)
        filename = '{}{}{}{}'.format(file_path,os.sep,file_name,file_suffix)
       #下载图片,并保存到文件夹中
        urllib.urlretrieve(img_url,filename=filename)
    except IOError as e:
        print '文件操作失败',e
    except Exception as e:
        print '错误 :',e

我们来下载简书首页的图片来测试一下:


image.png

下载这个图片

if __name__ == '__main__':
    img_url = 'http://upload.jianshu.io/admin_banners/web_images/2474/259a36ccbca577c3064c68ab3c0f1834d77456d7.png'
    save_img(img_url,'jianshu')

运行结果如下:


image.png
image.png

保存到指定文件目录:

if __name__ == '__main__':
    file_path = 'I:'+os.sep + 'myimg'
    img_url = 'http://upload.jianshu.io/admin_banners/web_images/2474/259a36ccbca577c3064c68ab3c0f1834d77456d7.png'
    save_img(img_url,'jianshu',file_path=file_path)

运行结果如下:


image.png
image.png
上一篇下一篇

猜你喜欢

热点阅读