为什么需要加星标?
由于微信公众号出现了 “乱序” 排列的状况,为了朋友们能第一时间,收到我的推送文章。希望您抽出一分钟,完成如下三步。
01
02
03
2205
人已添加“星标”
作者:Huny
关注下方作者博客园,精彩抢先看!
https://www.cnblogs.com/huny/p/14146719.html
大家好,我是为大家分享“干货”和“黑科技”的黄同学!
1. 前言
工作上的文档和资料好几个月没整理了,因为平常太忙都是随手往桌面丢。整个桌面杂乱无章全是文档和资料。几乎快占满整个屏幕了,所有我必须要整理一下了。但是手动整理太费时间了,于是我想到了python。
但是这几个模块,我很早就给大家讲述过了,这里就不再做过多的解释了,大家可以参考下面之前写的文章进行学习,而这里就直接上代码了。
2. 基础版
import os
import glob
import shutil
'''
@Author: huny
@date: 2020.12.06
@function: 桌面整理
'''
class FileType():
def __init__(self):
self.filetype = {
"图片": [
".jpeg",
".jpg",
".tiff",
".gif",
".bmp",
".png",
".bpg",
"svg",
".heif",
".psd"],
"视频": [
".avi",
".flv",
".wmv",
".mov",
".mp4",
".webm",
".vob",
".mng",
".qt",
".mpg",
".mpeg",
".3gp",
".mkv"],
"音频": [
".aac",
".aa",
".aac",
".dvf",
".m4a",
".m4b",
".m4p",
".mp3",
".msv",
".ogg",
".oga",
".raw",
".vox",
".wav",
".wma"],
"文档": [
".oxps",
".epub",
".pages",
".docx",
".doc",
".fdf",
".ods",
".odt",
".pwi",
".xsn",
".xps",
".dotx",
".docm",
".dox",
".rvg",
".rtf",
".rtfd",
".wpd",
".xls",
".xlsx",
".ppt",
".pptx",
".csv",
".pdf",
".md",
".xmind"],
"压缩文件": [
".a",
".ar",
".cpio",
".iso",
".tar",
".gz",
".rz",
".7z",
".dmg",
".rar",
".xar",
".zip"],
"文本": [
".txt",
".in",
".out",
".json",
".xml",
".log"],
"程序脚本": [
".py",
".html5",
".html",
".htm",
".xhtml",s
".c",
".cpp",
".java",
".css",
".sql"],
"可执行程序": [
".exe",
".bat",
".lnk"],
"字体文件": [
".ttf",
".OTF",
".WOFF",
".EOT"]
}
def JudgeFile(self, pathname):
for name, type
in self.filetype.items():
if pathname
in type:
return name
return
"无法判断类型文件"
class DeskTopOrg(object):
def __init__(self):
self.filetype = FileType()
def Organization(self):
filepath = os.path.join(os.path.expanduser(
'~'),
"Desktop")
paths = glob.glob(filepath +
"/*.*")
# print('paths-->',paths)
for path
in paths:
try:
if
not os.path.isdir(path):
file = os.path.splitext(path)
filename,type = file
# print('type-->',type)
# print("filename-->",filename)
print(
'path-->',path)
dir_path = os.path.dirname(path)
# print('dir_path-->',dir_path)
savePath = dir_path +
'/{}'.format(self.filetype.JudgeFile(type))
print(
'savePath-->',savePath)
if
not os.path.exists(savePath):
os.mkdir(savePath)
shutil.move(path, savePath)
else:
shutil.move(path, savePath)
except FileNotFoundError:
pass
# print("程序执行结束!")
if __name__ ==
'__main__':
try:
while
True:
desktopOrg = DeskTopOrg()
desktopOrg.Organization()
print(
"---->你的桌面已经整理完成。")
a = input(
'---->请按回车键退出:')
if a ==
'':
break
except BaseException:
print(
"ERROE:路径错误或有重复的文档")
整理完了,桌面清爽了不少。(注意此脚本是按后缀进行分类归档的)
3. 升级版
基于这个,我想是否可以对其他不同的路径进行整理呢,于是又优化了一下。
import os
import glob
import shutil
'''
@Author: huny
@date: 2020.12.06
@function: 文件整理
'''
class FileType():
def __init__(self):
self.filetype = {
"图片": [
".jpeg",
".jpg",
".tiff",
".gif",
".bmp",
".png",
".bpg",
"svg",
".heif",
".psd"],
"视频": [
".avi",
".flv",
".wmv",
".mov",
".mp4",
".webm",
".vob",
".mng",
".qt",
".mpg",
".mpeg",
".3gp",
".mkv"],
"音频": [
".aac",
".aa",
".aac",
".dvf",
".m4a",
".m4b",
".m4p",
".mp3",
".msv",
".ogg",
".oga",
".raw",
".vox",
".wav",
".wma"],
"文档": [
".oxps",
".epub",
".pages",
".docx",
".doc",
".fdf",
".ods",
".odt",
".pwi",
".xsn",
".xps",
".dotx",
".docm",
".dox",
".rvg",
".rtf",
".rtfd",
".wpd",
".xls",
".xlsx",
".ppt",
".pptx",
".csv",
".pdf",
".md",
".xmind"],
"压缩文件": [
".a",
".ar",
".cpio",
".iso",
".tar",
".gz",
".rz",
".7z",
".dmg",
".rar",
".xar",
".zip"],
"文本": [
".txt",
".in",
".out",
".json",
"xml",
".log"],
"程序脚本": [
".py",
".html5",
".html",
".htm",
".xhtml",
".c",
".cpp",
".java",
".css",
".sql"],
"可执行程序": [
".exe",
".bat",
".lnk"],
"字体文件": [
".ttf",
".OTF",
".WOFF",
".EOT"]
}
def JudgeFile(self, pathname):
for name, type
in self.filetype.items():
if pathname
in type:
return name
return
"无法判断类型文件"
class DeskTopOrg(object):
def __init__(self):
self.filetype = FileType()
def Organization(self):
filepath = input(
"请输入需要整理的文件夹路径: ")
paths = glob.glob(filepath +
"/*.*")
print(
'paths-->',paths)
for path
in paths:
try:
if
not os.path.isdir(path):
file = os.path.splitext(path)
filename,type = file
print(
'type-->',type)
print(
"filename-->",filename)
print(
'path-->',path)
dir_path = os.path.dirname(path)
print(
'dir_path-->',dir_path)
savePath = dir_path +
'/{}'.format(self.filetype.JudgeFile(type))
print(
'savePath-->',savePath)
if
not os.path.exists(savePath):
os.mkdir(savePath)
shutil.move(path, savePath)
else:
shutil.move(path, savePath)
except FileNotFoundError:
pass
print(
"程序执行结束!")
if __name__ ==
'__main__':
try:
while
True:
desktopOrg = DeskTopOrg()
desktopOrg.Organization()
print(
"---->你的文件已经整理完成。")
a = input(
'---->请按回车键退出:')
if a ==
'':
break
except BaseException:
print(
"ERROE:路径错误或有重复的文档")
此时,你就可以整理任意路径下的文件了。
4. 打包成exe可执行文件
其他朋友也有需求,但是又没有python环境,于是我将程序打包成exe执行文件。
① 安装pyinstaller
pip install pyinstaller
② 执行打包命令
#在程序脚本的路径执行以下命令
pyinstaller -F ***.py
执行完后生成几个文件,在dist文件下有一个exe可执行文件,将他单独发给朋友即可。
别忘了先自己测试一遍。
推荐阅读: