利用Python批量提取Win10锁屏壁纸实战教程

yipeiwu_com5年前Python基础

前言

相信使用Win10的朋友会发现,每次开机锁屏界面都会有不一样的漂亮图片,这些图片通常选自优秀的摄影作品,十分精美。

但是由于系统会自动更换这些图片,所以就算再好看的图片,也许下次开机之后就被替换掉了。

借助Python,我们可以用简单的几行代码,批量提取这些精美的锁屏图片。把喜欢的图片设置成桌面背景,就不用担心被替换掉啦。

下面话不多说了,来一起看看详细的介绍吧。

提取原理

Win10系统会自动下载最新的锁屏壁纸,并将他们保存在一个系统文件夹中,路径是C:\Users\[用户名]\AppData\Local\Packages\Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy\LocalState\Assets

直接打开这个文件夹,里面会有随机命名的多个文件,每一个文件就是一张图片。但是由于文件没有扩展名,所以并不能预览。为了不搞坏系统文件,并且把这些文件变成可以预览的格式,我们用Python把这些文件复制出来,加上JPG作为扩展名。

实现代码

import os, shutil
from datetime import datetime
# 把这个文件所在目录wallpapers文件夹作为保存图片的目录
save_folder = dir_path = os.path.dirname(
 os.path.realpath(__file__)) + '\wallpapers'
# 动态获取系统存放锁屏图片的位置
wallpaper_folder = os.getenv('LOCALAPPDATA') + (
 '\Packages\Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy'
 '\LocalState\Assets')
# 列出所有的文件
wallpapers = os.listdir(wallpaper_folder)
for wallpaper in wallpapers:
 wallpaper_path = os.path.join(wallpaper_folder, wallpaper)
 # 小于150kb的不是锁屏图片
 if (os.path.getsize(wallpaper_path) / 1024) < 150:
 continue
 wallpaper_name = wallpaper + '.jpg'
 save_path = os.path.join(save_folder, wallpaper_name)
 shutil.copyfile(wallpaper_path, save_path)
 print('Save wallpaper ' + save_path)

首先确定系统存放锁屏图片的文件夹位置,由于文件夹位于用户的个人文件夹内,每个用户的用户名是不一样的,所以我们需要通过系统的LOCALAPPDATA变量动态的获取路径。代码会把提取出来的图片保存在wallpapers文件夹下,所以代码文件所在的目录没有wallpapers文件夹,需要手工创建一个。

执行上面这段Python代码,再打开wallpapers文件夹,就可以看到提取出的锁屏图片了。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对【听图阁-专注于Python设计】的支持。

相关文章

利用python打开摄像头及颜色检测方法

最近两周由于忙于个人项目,一直未发言了,实在是太荒凉了。。。。,上周由于项目,见到Python的应用极为广泛,用起来也特别顺手,于是小编也开始着手学习Python,…下面我就汇报下今天的...

Python cookbook(数据结构与算法)筛选及提取序列中元素的方法

本文实例讲述了Python筛选及提取序列中元素的方法。分享给大家供大家参考,具体如下: 问题:提取出序列中的值或者根据某些标准对序列做删减 解决方案:列表推导式、生成器表达式、使用内建的...

Python利用多进程将大量数据放入有限内存的教程

Python利用多进程将大量数据放入有限内存的教程

简介 这是一篇有关如何将大量的数据放入有限的内存中的简略教程。 与客户工作时,有时会发现他们的数据库实际上只是一个csv或Excel文件仓库,你只能将就着用,经常需要在不更新他们的数据仓...

Python数据处理篇之Sympy系列(五)---解方程

Python数据处理篇之Sympy系列(五)---解方程

前言 sympy不仅在符号运算方面强大,在解方程方面也是很强大。 本章节学习对应官网的:Solvers 官方教程 https://docs.sympy.org/latest/tutor...

Opencv+Python实现图像运动模糊和高斯模糊的示例

Opencv+Python实现图像运动模糊和高斯模糊的示例

运动模糊:由于相机和物体之间的相对运动造成的模糊,又称为动态模糊 Opencv+Python实现运动模糊,主要用到的函数是cv2.filter2D(): # coding: utf-...