python下载图片并保存到文件夹
2017-02-25 本文已影响11419人
4ffde5305e8f
从网络下载图片并保存到磁盘文件中
- 建立保存图片的目录
如果目录不存在,则建立文件目录。
使用os.makedirs(file_path)建立目录,而不是使用os.mkdir(file_path)。
因为mkdir只能建立单级文件目录。
makedirs则能建立多级文件目录,也能建立单级文件目录。
单级文件目录:img
多级文件目录:my/book/img - 获得图片名(包含路径)
从图片url中取得图片后缀——jgp,png之类的
os.path.splitext(path)
将文件路径(包含文件名)拆分为:[路径\文件名, 文件后缀]
拼接图片名(包含路径)
filename = 目录路径 +文件分隔符+ 图片名+图片后缀
使用os.sep获得系统文件分隔符,避免不同平台造成不同的文件分隔符。 - 下载图片
使用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