Python提取保存 Win10系统 锁屏壁纸 桌面图片

Win10默认系统下载的壁纸怎么下载?在哪里找出来呢?首先它是要设置为Windows聚焦才会自动从微软的服务器上去下载壁纸。这些都是随机下载的。每个人的都Win10 都有可能不一样。

C:\Users\kai\AppData\Local\Packages\Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy\LocalState\Assets  

MIS:是你要的用户名文件夹

Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy:这个文件夹是随机的。

但是前面Microsoft.Windows.ContentDeliveryManager这一段是不会变的。其他的文件夹都是一样的。

百度经验有详细介绍:http://jingyan.baidu.com/article/fedf07375ea25135ad897761.html


# -*- coding: utf-8 -*-
import os, os.path
import shutil
import stat
from PIL import Image

srcpath = r'C:\Users\kai\AppData\Local\Packages\Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy\LocalState\Assets'           

dstpath = r'F:\test'
midpath = r'F:\test1'
dstpath1 = r'F:\test1.1'
dstpath2 = r'F:\test1.2'

def move_file(srcpath, midpath):  # 复制文件
    filelist = os.listdir(srcpath)
    for files in filelist:
        Olddir = os.path.join(srcpath, files);  # 原来的文件路径
        shutil.copy(Olddir, midpath)
    print ('.............move_file............ done')

def rename_file(midpath):  # 重命名文件
    filelist = os.listdir(midpath)
    for files in filelist:
        Olddir = os.path.join(midpath, files);  # 原来的文件路径
        if os.path.isdir(Olddir):  # 如果是文件夹则跳过
            continue;
        filename = os.path.splitext(files)[0];  # 文件名
        # filetype=os.path.splitext(files)[1];#文件扩展名
        Newdir = os.path.join(midpath, filename + ".jpg");  # 新的文件路径
        os.rename(Olddir, Newdir);  # 重命名
        print Newdir
    print ('.............rename_file............ done')


执行,这两个函数(结果如下图):

move_file(srcpath, midpath)
rename_file(midpath)


再看目录文件夹,复制图片,加上.jpg成功。不过有几张红方块圈起来的图片,并不是我们想要的,需要删除。




def modify_file_attribute(midpath):  # 修改文件属性
    filelist = os.listdir(midpath)
    for files in filelist:
        Olddir = os.path.join(midpath, files);  # 原来的文件路径
        os.chmod(Olddir, stat.S_IWRITE)  # 修改文件只读属性
    print ('.............modify_file_attribute............ done')

def delete_file_less_200kb(midpath):  # 删除小于200kb的文件
    filelist = os.listdir(midpath)
    for files in filelist:
        Olddir = os.path.join(midpath, files);  # 原来的文件路径
        if os.path.getsize(Olddir) < 200000 :  # 小于200kb且不是JPEG文件 and (im.mode != 'RGB' or im.format != 'JPEG')
             os.remove(Olddir)
             print 'delete',Olddir

    print ('.............delete_less_200kb_file............ done')

def delete_file_gif(midpath):  # 删除gif的文件
    filelist = os.listdir(midpath)
    for files in filelist:
        Olddir = os.path.join(midpath, files);  # 原来的文件路径
        im = Image.open(Olddir)
        print files, im.format, im.size, im.mode
        if im.format != 'JPEG' :  # 小于200kb且不是JPEG文件 and (im.mode != 'RGB' or im.format != 'JPEG')
             im.close()
             os.remove(Olddir)
             print 'delete',im.format, im.size, im.mode
        else:
             im.close()

    print ('.............delete_gif_file............ done')

需要修改文件属性,才能对文件进行删除。 当删除完小于200kb的文件,发现还是存在无用的文件。

查看发现是一些大于200K的gif文件,只是在之前的重命名过程中,被修改为JPG。这些GIF文件并非是桌面图片,所以通过读取文件格式,删除gif的文件。



发现删除结果成功,效果不错。

发现现在图片还是有些问题,桌面图片还有对应的缩减图,缩减图比较适合做手脚桌面。

需要把桌面图片与缩减图分到2个不同文件夹里: test1.1与test1.2  。


def picture_length_width(midpath):  # 判断图片长宽复制到不同的文件路径
    filelist = os.listdir(midpath)
    for files in filelist:
        Olddir = os.path.join(midpath, files);  # 原来的文件路径
        img = Image.open(Olddir)   # img.size 输出 (长, 宽)
        print img
        if img.size[0]>img.size[1]:  # 比较文件长宽
            shutil.copy(Olddir, dstpath1)
        else:
            shutil.copy(Olddir, dstpath2)
    print ('.............picture_length_width............ done')


查看 test1.1与test1.2  。



根据图片长宽分类成功。 

test1.1与test1.2虽然有里分类好的图片,但test1里面的图片仍然存在,没有删除。是通过复制的方式实现。


后续发现问题:暂时没有修改——如果test1.1与test1.2目录文件,存在同名文件,会产生错误的复制。

如果test1.1与test1.2目录文件都是空文件,可以正常运行。


源代码:

# -*- coding: utf-8 -*-
import os, os.path
import shutil
import stat
from PIL import Image

srcpath = r'C:\Users\kai\AppData\Local\Packages\Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy\LocalState\Assets'
            

dstpath = r'F:\test'
midpath = r'F:\test1'
dstpath1 = r'F:\test1.1'
dstpath2 = r'F:\test1.2'

#dstpath1 = r'C:\Users\kai\Pictures\windows聚焦'
#dstpath2 = r'C:\Users\kai\Pictures\手机桌面'

def move_file(srcpath, midpath):  # 复制文件
    filelist = os.listdir(srcpath)
    for files in filelist:
        Olddir = os.path.join(srcpath, files);  # 原来的文件路径
        shutil.copy(Olddir, midpath)
    print ('.............move_file............ done')


def rename_file(midpath):  # 重命名文件
    filelist = os.listdir(midpath)
    for files in filelist:
        Olddir = os.path.join(midpath, files);  # 原来的文件路径
        if os.path.isdir(Olddir):  # 如果是文件夹则跳过
            continue;
        filename = os.path.splitext(files)[0];  # 文件名
        # filetype=os.path.splitext(files)[1];#文件扩展名
        Newdir = os.path.join(midpath, filename + ".jpg");  # 新的文件路径
        os.rename(Olddir, Newdir);  # 重命名
        print Newdir
    print ('.............rename_file............ done')


def modify_file_attribute(midpath):  # 修改文件属性
    filelist = os.listdir(midpath)
    for files in filelist:
        Olddir = os.path.join(midpath, files);  # 原来的文件路径
        os.chmod(Olddir, stat.S_IWRITE)  # 修改文件只读属性
    print ('.............modify_file_attribute............ done')


def delete_file_less_200kb(midpath):  # 删除小于200kb的文件
    filelist = os.listdir(midpath)
    for files in filelist:
        Olddir = os.path.join(midpath, files);  # 原来的文件路径
        if os.path.getsize(Olddir) < 200000 :  # 小于200kb且不是JPEG文件 and (im.mode != 'RGB' or im.format != 'JPEG')
             os.remove(Olddir)
             print 'delete',Olddir

    print ('.............delete_less_200kb_file............ done')
	
def delete_file_gif(midpath):  # 删除gif的文件
    filelist = os.listdir(midpath)
    for files in filelist:
        Olddir = os.path.join(midpath, files);  # 原来的文件路径
        im = Image.open(Olddir)
        print files, im.format, im.size, im.mode
        if im.format != 'JPEG' :  # 小于200kb且不是JPEG文件 and (im.mode != 'RGB' or im.format != 'JPEG')
             im.close()
             os.remove(Olddir)
             print 'delete',im.format, im.size, im.mode
        else:
             im.close()

    print ('.............delete_gif_file............ done')
	

def picture_length_width(midpath):  # 判断图片长宽复制到不同的文件路径
    filelist = os.listdir(midpath)
    for files in filelist:
        Olddir = os.path.join(midpath, files);  # 原来的文件路径
        img = Image.open(Olddir)   # img.size 输出 (长, 宽)
        print img
        if img.size[0]>img.size[1]:  # 比较文件长宽
            shutil.copy(Olddir, dstpath1)
        else:
            shutil.copy(Olddir, dstpath2)
    print ('.............picture_length_width............ done')
		

move_file(srcpath, midpath)
rename_file(midpath)
modify_file_attribute(midpath)
delete_file_less_200kb(midpath)
delete_file_gif(midpath)
picture_length_width(midpath)

分享几种提取保存的图片



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用Python实现解锁Win10锁屏,你可以按照以下步骤进行操作: 1. 打开文件资源管理器,导航到以下路径:C:\Users\\[用户名\]\AppData\Local\Packages\Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy\LocalState\Assets。这是存储锁屏壁纸的文件夹。 2. 复制该文件夹的路径,以便在Python代码中使用。 3. 使用Python的shutil模块来复制文件。你可以使用以下代码: ```python import os import shutil # 设置源文件夹路径 src_folder = r'C:\Users\\[用户名\]\AppData\Local\Packages\Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy\LocalState\Assets' # 设置目标文件夹路径 dst_folder = r'C:\目标文件夹路径' # 遍历源文件夹中的文件 for filename in os.listdir(src_folder): # 构建源文件的完整路径 src_file = os.path.join(src_folder, filename) # 构建目标文件的完整路径,并添加.jpg扩展名 dst_file = os.path.join(dst_folder, filename + '.jpg') # 复制文件 shutil.copy(src_file, dst_file) ``` 请确保将`\[用户名\]`替换为你的用户名,并将`C:\目标文件夹路径`替换为你想要保存解锁壁纸的目标文件夹路径。 4. 运行上述代码,它将复制锁屏壁纸文件夹中的所有文件到指定的目标文件夹,并为每个文件添加.jpg扩展名。 现在,你可以在目标文件夹中找到解锁壁纸的副本,并且可以预览它们了。 #### 引用[.reference_title] - *1* *3* [实战 | Python批量提取Win10锁屏壁纸](https://blog.csdn.net/weixin_35837926/article/details/113515844)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [用python获取win10锁屏图片](https://blog.csdn.net/weixin_39806388/article/details/111848469)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值