【Python小程序记录】自动获取win10网络壁纸
来源:互联网 发布:彩虹域名授权源码 编辑:程序博客网 时间:2024/06/15 15:27
一、背景介绍
本本上用的是win10系统,很喜欢win10锁屏界面自动联网更新的壁纸,想拿来当桌面的壁纸,遂百度了一下,找到了其所存储的位置:
C:/Users/yourUserName/AppData/Local/Packages/Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy/LocalState/Assets
但是有一个问题:这个目录下的文件都没有诸如.jpg
、.png
等的后缀名,无法直接用图片浏览器打开。想要拿来当桌面壁纸就必须手动加上后缀名,很是麻烦。
而且这个目录下不仅有壁纸图片,还有一些window徽标之类的不适合拿来当壁纸的小图片,所以要进行筛选,手动筛选也不是件轻松的事情。
于是就打算自己写个小程序来代劳,刚好最近在学Python,就顺手用Python写了个小程序。
二、需求分析
总的来说就是要用Python实现以下的功能:
- 筛选出适合当壁纸的图片
- 复制到新文件夹下并加上
.jpg
后缀
怎么从一堆图片中找出适合当壁纸的图片呢?观察了一下,发现壁纸文件的大小往往大于400KB, 而那些徽标之类的小图通常只有几K到几十K的大小,所以设定阈值 Threshold = 400.0
遍历该目录下的文件,读取其文件大小,若大于400K,则认为合格,小于400K则认为不合格,以此来完成图片的筛选。
三、功能模块设计
主要用到了Python的对文件夹和文件的操作
引用了
import osimport os.pathimport shutil
下面就用到的os 与 os.path 的相关方法做简要记录
os.listdir(path)
列出该路径下所有的文件(包含文件夹)
返回files
,files
是一个list
,包含该路径下所有文件(包含文件夹)的名字os.path.isfile(filePath)
判断某路径指向的是否是文件os.path.getSize(path)
判断大小os.path.splitext(filename)
返回一个list,list[0]为文件名, list[1]为扩展名os.rename(filePath, new_filePath)
重命名,将filePath重命名为new_filePathshutil.copy(filePath, save_to_path)
将filePath下的文件拷贝至save_to_path
完整代码如下:
#!/usr/bin/env python3# -*- coding: utf-8 -*-import osimport os.pathimport shutilbk_paper_path = 'C:/Users/24382/AppData/Local/Packages/Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy/LocalState/Assets'save_to_path = 'F:/桌面壁纸/windows网络'THRESHOLD = 400.0#将文件大小从字节转换成KB, M or Gdef formatSize(bytes): try : bytes = float(bytes) K = bytes / 1024 except: print('传入的字节格式不对!') return "Error" return K#获取文件大小def getFileSize(path): try: size = os.path.getsize(path) return formatSize(size) except Exception as err: print(err)#在文件后加上后缀.jpg#输入:原文件名#返回:改动过后的文件名def addSuffixJPG(oldFileName): li = os.path.splitext(oldFileName) if (li[1] == '.jpg'): return oldFileName else: newFileName = li[0] + '.jpg' return newFileName#在目录下找到合适的文件,并加上'.jpg' 后缀def findPaper(): #读取目录下每一个文件,返回list files = os.listdir(bk_paper_path) #遍历目录 for filename in files: filePath = bk_paper_path + '/' + filename #如果是文件且大于阈值 if(os.path.isfile(filePath) and getFileSize(filePath) >= THRESHOLD): #所有符合要求的文件加上后缀.jpg newName = addSuffixJPG(filename) new_filePath = bk_paper_path + '/' + newName os.rename(filePath, new_filePath)#将.jpg文件拷贝至save_to_pathdef copyFile(): #读取目录下每一个文件,返回list files = os.listdir(bk_paper_path) #遍历目录 for filename in files: #获取文件后缀名 li = os.path.splitext(filename) #如果是.jpg文件 if (li[1] == '.jpg'): #拷贝至save_to_path filePath = bk_paper_path + '/' + filename shutil.copy(filePath, save_to_path)def main(): findPaper() copyFile()if __name__ == '__main__': main() print('Done!')
0 0
- 【Python小程序记录】自动获取win10网络壁纸
- 自动获取win10锁屏壁纸脚本
- 小程序获取网络状态
- 今日小程序推荐:IN壁纸-你专属壁纸!
- python实现自动保存windows聚焦壁纸
- 今日小程序推荐:初礼壁纸
- 自动获取网络接口信息程序
- Python提取保存 Win10系统 锁屏壁纸 桌面图片
- 使用Python手动获取Windows10 聚焦壁纸
- python获取bing上的壁纸
- python 自动获取天气程序(V1)
- Python 实现网络爬虫小程序
- 初学Python写的小程序,记录记录!
- 如何保存Win10壁纸
- (已解决)win10系统cortana小娜无法连接网络,其他程序可正常联网
- 用python实现下载必应壁纸并自动更换壁纸的功能
- 自己动手写Python实现Ubuntu自动切换壁纸
- 小程序专题:换手机费钱,换壁纸好玩!
- 29点注意事项造就编程高手!
- Ionic环境搭建
- 如何在 Pi3 上安装 Meteor
- 关于set_new_handler
- 有一个字符数组的内容为:"student a am i",请你将数组的内容改为"i am a student". 要求: 不能使用库函数。只能开辟有限个空间(空间个数和字符串的长度无关)
- 【Python小程序记录】自动获取win10网络壁纸
- Spring之事务控制
- MairaDB 函数(六)
- git 使用方法
- GCD之dispatch_group_create
- Elasticsearch安装及其插件安装
- 山东省省赛小结
- Linux下Make命令介绍
- select 绑定事件