前面有篇博客写了如何定时获取bing图片,但是只是获取的url,用作写blog时作为封面图,实际上还可以将图片下载到电脑里,作为壁纸,然后不停轮播。所以修改一下之前的脚本,增加download图片功能。
增加一个download函数,然后添加到之前的代码中,在main方法里调一下即可
save_path = "/Users/jianlin/Pictures/"
def download_pic(pic_url):
pic_name = pic_url.split("/")[-1]
ir = requests.get(pic_url)
if ir.status_code == 200:
open(save_path + pic_name, 'wb').write(ir.content)
代码理解起来也很简单,get方式请求bing图片地址,然后如果状态码是200,就获取二进制的响应内容ir.content,然后利用open函数写入到指定目录。
open函数的第二个参数’wb’表示文件打开的模式为二进制写,具体定义如下:
'r': 以只读模式打开(缺省模式)(必须保证文件存在)
'w':以只写模式打开。若文件存在,则会自动清空文件,然后重新创建;若文件不存在,则新建文件。使用这个模式必须要保证文件所在目录存在,文件可以不存在。该模式下不能使用read*()方法
'a':以追加模式打开。若文件存在,则会追加到文件的末尾;若文件不存在,则新建文件。该模式不能使用read*()方法。
下面四个模式要和上面的模式组合使用
'b':以二进制模式打开
't': 以文本模式打开(缺省模式)
'+':以读写模式打开
'U':以通用换行符模式打开
常见的mode组合
'r'或'rt': 默认模式,文本读模式
'w'或'wt': 以文本写模式打开(打开前文件会被清空)
'rb': 以二进制读模式打开
'ab': 以二进制追加模式打开
'wb': 以二进制写模式打开(打开前文件会被清空)
'r+': 以文本读写模式打开,可以写到文件任何位置;默认写的指针开始指在文件开头, 因此会覆写文件
'w+': 以文本读写模式打开(打开前文件会被清空)。可以使用read*()
'a+': 以文本读写模式打开(写只能写在文件末尾)。可以使用read*()
'rb+': 以二进制读写模式打开
'wb+': 以二进制读写模式打开(打开前文件会被清空)
'ab+': 以二进制读写模式打开
前面将图片保存到的是mac用户目录下的图片文件夹,然后打开系统偏好设置将壁纸设置成该文件夹读取,然后设置一定时切换。
参考:http://cn.python-requests.org/zh_CN/latest/user/quickstart.html#id3