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

    xiaoxiao2021-03-25  98

    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) 分享几种提取保存的图片

    转载请注明原文地址: https://ju.6miu.com/read-21245.html

    最新回复(0)