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)