目录
前言
一、python所依赖的库
二、代码详解
1.引入库
2.创建分类字典
3.传入桌面路径
将桌面路径以字符串形式赋值给path,并将桌面所有文件名存入dirs
4.在指定路径创建文件夹用以保存分类文件
5.判断文件并进行移动分类
6.程序打包为exe
三.整体代码
总结
前言
在日常学习工作中,将文件放在桌面可以节省工作时间,方便许多。但是这样的文件多了之后,需要整理。本文编写了一款桌面整理程序,可以根据文件的后缀名字而将文件集中起来,存储于磁盘指定路径,还可以以时间戳的形式命名,一键操作。
一、python所依赖的库
os,time,shutil
二、代码详解
1.引入库
代码如下(示例):
import os,time,shutil
2.创建分类字典
创建一个字典,后面会根据字典里面的后缀名进行文件分类,可根据个人使用习惯增减
代码如下(示例):
formats = {
"音频":[".mp3",".wav"],
"视频":[".mp4",".avi",".mov",".wmv",".asf",".rm",".rmvb"],
"图片":[".jpeg",".jpg",".png",".gif",".bmp",".psd",".html"],
"文档":[".txt",".pdf",".doc",".docx",".xlsx",".pptx"],
"压缩":[".zip",".rar",".7z",".jar"],
}
3.传入桌面路径
path = "D:\\桌面"
dirs = os.listdir(path)
将桌面路径以字符串形式赋值给path,并将桌面所有文件名存入dirs
4.在指定路径创建文件夹用以保存分类文件
filename="桌面缓冲文件"+time.strftime('%Y:%m:%d',time.localtime(time.time())).replace(":", "_")
filepath="D:\\Source_SBUF\\"+filename
os.mkdir(filepath)
filename为存储文件夹名字的变量,可以自行修改,
time.strftime('%Y:%m:%d',time.localtime(time.time())).replace(":", "_")
这一部分代码,为加上时间戳,精确到年月日
filepath为希望把桌面杂乱文件放入的路径位置,注意在filename前加上“\\”
5.判断文件并进行移动分类
for file in dirs:
fname,ext = os.path.splitext(file)#将桌面每一个文件的文件名和后缀分开,文件名存入fname,后缀传入ext
for d,exts in formats.items():#字典检索,满足字典的后缀则将文件挪动到指定位置
if ext in exts:
shutil.move(path+"\\"+file,filepath+"\\"+file)
print(ext)
6.程序打包为exe
将程序打包为exe就可以放在桌面一键执行了,十分方便,分为以下几步
- 使用pip命令安装PyInstaller:pip install PyInstaller
- 运行cmd,输入: pyInstaller -F (“需要打包的.py文件路径”)
- 回车运行,最后会在后几行输出一个.exe文件的保存路径
三.整体代码
import os,time,shutil
formats = {
"音频":[".mp3",".wav"],
"视频":[".mp4",".avi",".mov",".wmv",".asf",".rm",".rmvb"],
"图片":[".jpeg",".jpg",".png",".gif",".bmp",".psd",".html"],
"文档":[".txt",".pdf",".doc",".docx",".xlsx",".pptx"],
"压缩":[".zip",".rar",".7z",".jar"],
}
path = "D:\\桌面"
dirs = os.listdir(path)
filename="桌面缓冲文件"+time.strftime('%Y:%m:%d',time.localtime(time.time())).replace(":", "_")
filepath="D:\\Source_SBUF\\"+filename
os.mkdir(filepath)
for file in dirs:
fname,ext = os.path.splitext(file)
for d,exts in formats.items():
if ext in exts:
shutil.move(path+"\\"+file,filepath+"\\"+file)
print(ext)