美文网首页python自学python笔记
3分钟教你用python把你的桌面壁纸变得酷起来

3分钟教你用python把你的桌面壁纸变得酷起来

作者: linklinco | 来源:发表于2019-03-19 12:40 被阅读2次

一 、前言
最近在windows商店看到一个很好玩的应用,他能每天自动爬取bing搜索的图片设置为你的桌面壁纸,每天都能自动下载bing图片设置为桌面壁纸,可惜只有付费才能自动更换壁纸。下面让我们一起来用python实现这一功能吧~

二、思路
整个程序过程非常简单,首先获取图片链接,然后使用 urllib.request 库把图片保存到电脑里,再使用Cpython接口调用Windows API改变壁纸。

三、代码实现

import ctypes
import urllib.request
import json
import getpass
import time

def get_bing_photo():
    url = 'http://www.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1'
    res = urllib.request.urlopen(url)
    json_txt = res.read()
    txt = json.loads(json_txt)
    url = 'https://www.bing.com/' + txt['images'][0]['url']
    return url
def set_photo(url,num):
    photo = urllib.request.urlopen(url)
    d = photo.read()
    dizhi = "C:\\Users\\"+str(getpass.getuser())+"\\Pictures\\"+str(num)+".jpg"
    print(dizhi)
    f = open(dizhi, "wb")
    f.write(d)
    f.close()
    filepath = dizhi
    ctypes.windll.user32.SystemParametersInfoW(20, 0, filepath, 0)
if __name__ == "__main__":
    while True:
        #使用unsplash的随机高清图
        url = 'https://source.unsplash.com/random/4096x2160'
        #使用bing接口
        #url = get_bing_photo()
        #下载的图片保存地址
        f = open("C:\\Users\\"+str(getpass.getuser())+"\\Pictures\\tmp",'a+')
        f.seek(0)
        num = f.read()
        if num == '':
            num = '0'
        f.seek(0)
        f.truncate()
        num = int(num) + 1
        f.write(str(num))
        f.close()
        set_photo(url,num)
        #设置更改壁纸的时间,每隔100秒换一张
        time.sleep(100)

四、总结
这个小项目非常简单,但是却非常实用。Unsplash 的高清图真的超级超级好看,快自己动手试一下吧。

ps:如果你不想自己动手敲代码,可以下载我已经打包好的exe文件。关注我的个人公众号(木羽的树:muyudeshu),回复 "自动换壁纸" 可以获取下载链接哦~

相关文章

网友评论

    本文标题:3分钟教你用python把你的桌面壁纸变得酷起来

    本文链接:https://www.haomeiwen.com/subject/tsjgmqtx.html