/

将bing图片作为mac壁纸

前面有篇博客写了如何定时获取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用户目录下的图片文件夹,然后打开系统偏好设置将壁纸设置成该文件夹读取,然后设置一定时切换。

mac壁纸设置

参考:http://cn.python-requests.org/zh_CN/latest/user/quickstart.html#id3