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