作者 | 欣一

来源 | Python爱好者集中营

经常杂乱无章的文件夹会让我们找不到所想要的文件,因此小编特意制作了一个可视化GUI界面,通过输入路径一键点击实现文件分门别类的归档。

不同的文件后缀归类为不同的类别

我们先罗列一下大致有几类文件,根据文件的后缀来设定,大致如下:

SUBDIR = {"DOCUMENTS": [".pdf", ".docx", ".txt", ".html"],"AUDIO": [".m4a", ".m4b", ".mp3", ".mp4"],"IMAGES": [".jpg", ".jpeg", ".png", ".gif"],"DataFile": [".csv", ".xlsx"]
}

上面所罗列出来的文件后缀并不全面,读者可以根据自己的需求往里面添加,可以根据自己的喜好来进行分文别类,然后我们自定义一个函数,根据输入的一个文件后缀来判断它是属于哪个类的。

def pickDir(value):for category, ekstensi in SUBDIR.items():for suffix in ekstensi:if suffix == value:return category

例如输入的是.pdf返回的则是DOCUMENTS这个类。我们还需要再自定义一个函数,遍历当前目录下的所有文件,获取众多文件的后缀,将这些不同后缀的文件分别移入不同类别的文件夹,代码如下:

def organizeDir(path_val):for item in os.scandir(path_val):if item.is_dir():continuefilePath = Path(item)file_suffix = filePath.suffix.lower()directory = pickDir(file_suffix)directoryPath = Path(directory)# 新建文件夹,要是该文件夹不存在的话if directoryPath.is_dir() != True:directoryPath.mkdir()filePath.rename(directoryPath.joinpath(filePath))

output

我们再次基础之上,再封装一下做成Python可视化GUI界面,代码如下:

class FileOrgnizer(QWidget):def __init__(self):super().__init__()self.lb = QLabel(self)self.lb.setGeometry(70, 25, 80, 40)self.lb.setText('文件夹整理助手:')self.textbox = QLineEdit(self)self.textbox.setGeometry(170, 30, 130, 30)self.findButton = QPushButton('整理', self)self.findButton.setGeometry(60, 85, 100, 40)self.quitButton = QPushButton('退出', self)self.quitButton.clicked.connect(self.closeEvent)self.findButton.clicked.connect(self.organizeDir)self.quitButton.setGeometry(190, 85, 100, 40)self.setGeometry(500, 500, 350, 150)self.setWindowTitle('Icon')self.setWindowIcon(QIcon('../751.png'))self.show()def pickDir(self, value):for category, ekstensi in SUBDIR.items():for suffix in ekstensi:if suffix == value:return categorydef organizeDir(self, event):path_val = self.textbox.text()print("路径为: " + path_val)for item in os.scandir(path_val):if item.is_dir():continuefilePath = Path(item)fileType = filePath.suffix.lower()directory = self.pickDir(fileType)if directory == None:continuedirectoryPath = Path(directory)if directoryPath.is_dir() != True:directoryPath.mkdir()filePath.rename(directoryPath.joinpath(filePath))reply = QMessageBox.information(self, "完成", "任务完成,请问是否要退出?", QMessageBox.Yes | QMessageBox.No, QMessageBox.No)if reply == QMessageBox.Yes:event.accept()else:event.ignore()def closeEvent(self, event):reply = QMessageBox.question(self, '退出',"确定退出?", QMessageBox.Yes |QMessageBox.No, QMessageBox.No)if reply == QMessageBox.Yes:event.accept()else:event.ignore()

效果如下图所示

最后我们通过pyinstaller模块来将Python代码打包成可执行文件,操作指令如下

pyinstaller -F -w 文件名.py

部分参数含义如下:

  • -F:表示生成单个可执行文件

  • -w:表示去掉控制台窗口,这在GUI界面时时非常有用的

  • -i:表示可执行文件的图标

往期回顾资讯变身「毒」苹果?全球首个DMP漏洞
资讯
从祖师级到新生代,开发者的成功秘籍
技术浅谈Python中的字符串格式化输出
技术10个有趣的Python高级脚本!分享
点收藏
点点赞
点在看

用 Python 制作可视化 GUI 界面,一键实现自动分类管理文件!相关推荐

  1. 用Python制作可视化GUI界面,一键实现证件照背景颜色的替换

    今天,我们来分享一下如何通过Python的十来行代码来替换证件照的背景颜色,那么在最后,小编也会将上述的流程制作成一个GUI界面来方便大家使用.关于界面的大致模样其实和先前的相差不大,大家应该都看过上 ...

  2. 用Python制作可视化GUI界面,顺便实现自动分类整理文件

    有时候,我们写了一些简单.有用的小代码.此时,如果能够有一个可视化GUI界面,是不是显得很舒服.今天介绍的一个Python库,超级牛逼,几行代码就可以实现一个可视化界面! 应朋友私信要求,开通技术交流 ...

  3. 【Python】用Python制作可视化GUI界面,一键实现证件照背景颜色的替换

    今天,我们来分享一下如何通过Python的十来行代码来替换证件照的背景颜色,那么在最后,小编也会将上述的流程制作成一个GUI界面来方便大家使用.关于界面的大致模样其实和先前的相差不大,大家应该都看过上 ...

  4. 用 Python 制作可视化 GUI 界面,一键实现将头像转成动漫风!

    作者 | 欣一 来源 | Python爱好者集中营 最近在Github上面有看到将头像转化成动漫风的项目,但是对于不少没有技术背景的同学来说可能就不知道该怎么使用了,小编今天制作了一个UI界面,大家可 ...

  5. 闺蜜的电脑桌面总是杂乱无章,实在看不下去了。用Python实现一键实现自动分类管理文件。

    闺蜜的电脑桌面是这样的. 只能说还好是mac.不然电脑应该是非常卡的.今天也教你们怎么意见整理. 不同的文件后缀归类为不同的类别 我们先罗列一下大致有几类文件,根据文件的后缀来设定,大致如下 SUBD ...

  6. python数据写入表格生成图片_使用Python制作一个GUI界面,将随机生成的姓名存入到Excel文件中...

    前面内容,我们详细介绍了如何使用Python生成一定数量的随机姓名. 生成一些随机姓名 如何用Python生成若干个随机姓名?男女取名有方法,不能千篇一律 之前,也提到过,我们在一些项目中,需要若干个 ...

  7. python高手养成百家号_使用Python制作一个GUI界面,将随机生成的姓名存入到Excel文件中...

    前面内容,我们详细介绍了如何使用Python生成一定数量的随机姓名. 如何用Python生成若干个随机姓名?男女取名有方法,不能千篇一律 之前,也提到过,我们在一些项目中,需要若干个随机姓名,为了节省 ...

  8. python简单可视化聊天界面_如何用Python制作可视化输入界面

    继续研究Python的应用,我们在有些程序中需要输入一些参数,可由几种方式实现 1.直接写在程序里,适合编程使用 2.使用input()函数,运行程序时输入 3.做成可视化界面,然后让程序获得 今天主 ...

  9. Python自动化整理文件,还增加了可视化GUI界面

    有时候,我们写了一些简单.有用的小代码. 此时,如果能够有一个可视化GUI界面,是不是显得很舒服.今天介绍的一个Python库,超级牛逼,几行代码就可以实现一个可视化界面! Gooey介绍 这里用到的 ...

最新文章

  1. jquery验证手机号码和邮箱地址例子
  2. import导入模块
  3. Python 爬虫+tkinter界面 实现历史天气查询
  4. 语言中能产生汉明窗吗_0—6岁幼儿的语言、秩序、情感、数学敏感期,有这些特点和表现...
  5. html页面滚动导致阴影出现,三种处理滚动穿透问题方案的对比
  6. 天津大学计算机专硕_「20考研」计算机考研专业课变动汇总
  7. Python SciPy教程
  8. python 环境问题
  9. 信用卡前6位bin号代表什么
  10. 以后你肯定会用到的,25个常用Matplotlib图的Python代码,可以不会不能没有,建议收藏
  11. 2007年计算机工程师,全国计算机等级考试四级数据库工程师考试大纲(2007年版)...
  12. 简单说说路由器和交换机的区别
  13. 自动检测技术学习心得体会_自动化学习心得
  14. zblog添加html标题出错,ZBLOG模板修改的一些技巧小结
  15. linux C获取本地IP地址
  16. 乐观人生VS悲观人生
  17. excel单元格内容拆分_Excel中把一个单元格内容拆分到多个单元格内的两种方法...
  18. 【毕设项目】新闻推荐平台功能详解----新闻推荐系统
  19. 中国信保总经理唐若疑卷入ST宏盛合同诈骗案昕下马
  20. 计算机网络——什么是计算机网络

热门文章

  1. 提取文件名-Java
  2. linux禁用usb存储不禁用鼠标,禁用USB 不影响USB鼠标键盘 | 吴文辉博客
  3. 机械键盘测试——《万历十五年》2
  4. Ubuntu 1404
  5. 如何让项目开发提速?
  6. 7-14 十六进制转十进制
  7. QML入门教程:一、QML和QtQuick简介以及QML实例
  8. 猿创征文|Java中的IO流大家族 (两万字详解)
  9. 【MMPose】在HRNet应用SimDR(SimCC)/Part.3-处理头篇(Head)
  10. 目标客户画像_什么是客户画像