目录

前言

一、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文件的保存路径

 

python 防止exe程序多开_vscode

三.整体代码 

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)