1. 程式人生 > 其它 >Python實用案例,Python指令碼,Python實現每日更換“必應圖片”為“桌面桌布”

Python實用案例,Python指令碼,Python實現每日更換“必應圖片”為“桌面桌布”

往期回顧

Python實現自動監測Github專案並開啟網頁

Python實現檔案自動歸類

Python實現幫你選擇雙色球號碼

前言:

今天我們就利用python指令碼實現每日更換“必應圖片”為“桌面桌布”。直接開整~

效果展示

思路整理

1、通過網頁,獲取圖片地址

2、儲存圖片到絕對路徑

3、設定該絕對路徑所指向的圖片為桌布

4、批處理桌布自動切換

需要用到的模組如下:

import urllib.request
import requests
import os.path
import ctypes

第一、獲取圖片地址

這個函式主要通過requests模組,根據必應的網頁地址,獲取到當日圖片的最終img地址。

# 請求網頁,跳轉到最終 img 地址
def get_img_url(raw_img_url="https://area.sinaapp.com/bingImg/"):
    r = requests.get(raw_img_url)
    img_url = r.url  # 得到圖片檔案的網址
    print('img_url:', img_url)
    return img_url

第二、儲存圖片到本地

這個函式的作用就是把圖片儲存到你自己設定的一個目錄下,並返回當前目錄的絕對地址。

def save_img(img_url, dirname):
    # 儲存圖片到磁碟資料夾dirname中
    try:
        if not os.path.exists(dirname):
            print('資料夾', dirname, '不存在,重新建立')
            # os.mkdir(dirname)
            os.makedirs(dirname)
        # 獲得圖片檔名,包括字尾
        basename = "bing.jpg"
        # 拼接目錄與檔名,得到圖片路徑
        filepath = os.path.join(dirname, basename)
        # 下載圖片,並儲存到資料夾中
        urllib.request.urlretrieve(img_url, filepath)
    except IOError as e:
        print('檔案操作失敗', e)
    except Exception as e:
        print('錯誤 :', e)
    print("Save", filepath, "successfully!")

    return filepath

第三、設定該絕對路徑所指向的圖片為桌布

通過之前獲得的圖片所在的絕對路徑,把該圖片設定為桌面桌布。

def set_img_as_wallpaper(filepath):
    ctypes.windll.user32.SystemParametersInfoW(20, 0, filepath, 0)

第四、執行程式碼的main函式

def main():
    dirname = "D:\\bingImg"  # 圖片要被儲存在的位置
    img_url = get_img_url()
    filepath = save_img(img_url, dirname)  # 圖片檔案的路徑
    set_img_as_wallpaper(filepath)

執行效果(此時,可以回看一下文章首圖中的左上角那張圖片)

第五、批處理自動更換桌布

此時,可以在python指令碼的同一目錄下建立名為py_bingying.bat的批處理檔案,批處理內容如下:

@echo off
del g:\bingImg\*.jpg
python SetBingImgAsWallpaper.py

第二行在執行python指令碼前先刪除前一天下載的必應圖片,這樣就實現了舊桌布的每日清理,最大限度節省了儲存空間。第三行為執行上面的python指令碼。

如何實現桌布的自動切換呢,這裡採用開機執行上面的批處理程式的方法。

複製上面建立的批處理檔案,到下方目錄下,右鍵-貼上為快捷方式。這樣就實現了開機啟動批處理程式,自動清除和更新桌布。

C:\User\yourname\AppData\Roaming\Microsoft\Windows\開始選單\程式\啟動每次開機都執行一遍更換桌布的操作還不夠完美的話,可以用Windows任務計劃程式來新增任務,設定每天指定時間點執行批處理程式。

文章到這裡就結束了,感謝你的觀看,Python實用腳本系列,下篇文章分享Python 批量加水印

為了感謝讀者們,我想把我最近收藏的一些程式設計乾貨分享給大家,回饋每一個讀者,希望能幫到你們。

乾貨主要有:

① 2000多本Python電子書(主流和經典的書籍應該都有了)

② Python標準庫資料(最全中文版)

③ 專案原始碼(四五十個有趣且經典的練手專案及原始碼)

④ Python基礎入門、爬蟲、web開發、大資料分析方面的視訊(適合小白學習)

⑤ Python學習路線圖(告別不入流的學習)

⑥ 兩天的Python爬蟲訓練營直播許可權

All done~詳見個人簡介或者私信獲取完整原始碼。。