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

闺蜜的电脑桌面是这样的。

只能说还好是mac。不然电脑应该是非常卡的。今天也教你们怎么意见整理。

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

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

 

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():
            continue

        filePath = 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 category

    def organizeDir(self, event):

        path_val = self.textbox.text()
        print("路径为: " + path_val)
        for item in os.scandir(path_val):
            if item.is_dir():
                continue

            filePath = Path(item)
            fileType = filePath.suffix.lower()
            directory = self.pickDir(fileType)
            if directory == None:
                continue

            directoryPath = 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:表示可执行文件的图标

 关注公众号:Python顾木子   领取完整代码哈

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/251124.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

[Windows] 蜂巢收纳盒 V2.0.4---桌面分类整理

今天给关注的小伙伴带来一个好用的桌面整理软件 蜂巢收纳盒 V2.0.4 桌面有时候需要很多的文件,还有软件铺满整个桌面,让你看到桌面很烦。蜂巢收纳盒,让你告别杂乱无章的桌面软件图标、文件,以酷炫感十足的蜂巢造型来进行归类&…

简洁桌面(使用Windows自带的桌面整理功能)

简洁桌面(使用Windows自带的桌面整理功能) 本人比较喜欢整洁一点的桌面,不喜欢将所有的软件快捷方式都放在桌面上,Windows自带有这样的工具可以帮我们整理,不需要其他第三方工具。下面是我的桌面。 下面分享整理桌面的方法: 1、…

桌面文件太多?这个神器一键整理只需三秒!

△关注 星标~ 轻松get高效率神器! 就现在,数数你电脑桌面上躺着多少凌乱的图标? 既然点进了这篇文章,那相信没有二百也有五十吧。 说了三秒帮你整理好,多一秒都不算!来看看操作的效果—— 神奇不&#xff…

全自动桌面整理器

这是一款超级方便的桌面自动整理工具,需要简单的设置文件夹,可以移动复制,等操作了 使用時只需要把目標文件拖到 這個目標上就可以了。 DropIt 整理文件的帮手,选定很多各种类型的文件拖放到DropIt 的悬浮窗上,它就会…

【“免费”Windows优秀软件推荐】:Fences——自动整理桌面图标

Windows软件推荐:Fences——自动整理桌面图标 文章目录 Windows软件推荐:Fences——自动整理桌面图标一、Stardock Fences1.软件简介2.软件资源(1)百度网盘 二、安装方法1.将压缩包解压后,得到一个补丁文件夹和Fences安…

WebSocket的那些事(4-Spring中的STOMP支持详解)

目录 一、序言二、Spring对STOMP支持的相关注解三、聊天Demo代码示例1、前端页面chat.html2、相关实体(1) 请求消息参数(2) 响应消息内容(3) 自定义认证用户信息 3、自定义用户认证拦截器4、WebSocket消息代理配置5、ChatController控制器 四、测试用例1、指定用户定时消息推送…

600W个微信红包封面,人人都能领取到!!!

过年啦,祝大家春节快乐 牛年大吉,万事如意! 别忘了春节还有红包封面领取 新的一年愿大家财运亨通! 新年过完了,整理情绪上班了,祝福没有断,问候也依然。努力工作多表现,年后年终奖永…

微信这个设置你们关闭了吗?

我们每天都在使用微信,但你们知道微信这个设置可以关闭的吗?先知道怎么操作的,来跟我看看。 微信个性化广告推送原理: 微信在投放广告的过程中,会根据我们平时使用微信的各种习惯,包括浏览的信息&#xff…

Windows登录多个微信

方法一: 1. 新建一个txt文件。 2. 在txt里面写上以下内容(写几行就可以打开几个,这里以两个为例) start C:\"Program Files (x86)"\Tencent\WeChat\WeChat.exe start C:\"Program Files (x86)"\Tencent\WeC…

@所有人:你即将被AI移出群聊

我们来看一组最新的数据: 2018年最新数据:python、大数据、人工智能从业者工资 为什么人工智能行业的工资那么高? 无论是科研院所,商业巨头还是初创企业,各行各业都在大力开发或者引进人工智能,由于储备不足…

用 Python 找出了删除你微信的所有人并将他们自动化删除

1. 概述 不知你是否遇到过在微信上给通讯录中的某个人发消息,结果出现了这一幕: 平时一直认为自己的心里素质过硬,不过遇到这种情况 ... 在我缓了半个钟头(半分钟)之后,缓缓拿出了手机,打开微信…

【DOS BAT】Windows下微信双开、微信多开

背景: 经常需要在电脑上双开或多开微信,即打开多个微信,分别登陆不同的账号,比如一个登陆自己的微信,另一个登陆工作用的微信;下面就介绍在Windows上利用系统自带的BAT脚本实现双开或微信多开,不…

每个人都可以用的开源微信机器人

经历过UOS web协议的重放荣光,又经过一段时间的封禁,又有大神把UOS web协议救回来了。免费的快乐又重新回来了,不是吗? 这意味着每个人都可以用Wechaty搞事情了,什么服务器通知,定时给女友发微信,群发消息…

有一个测试微信删除软件叫wool,如果出现这三种情况,便可以删除这些微信好友,此操作适用所有人...

原标题:如果出现这三种情况,便可以删除这些微信好友,此操作适用所有人 在什么情况下,你会迫不得已将自己的微信好友删除掉,下面就让我们来好好谈谈这个问题。 一、删除微信好友 1、微商广告 微商喜欢在哪些地方发广告呢…

搭建文件下载服务器

安装 apache2 服务 sudo apt-get install apache2 修改端口 默认监听的端口是80,可以自定义修改 修改/etc/apache2/ports.conf 修改/etc/apache2/sites-available/000-default.conf 重启服务 apache服务器的默认目录在/var/www/html,如果想利用ht…

从服务器下载文件到本地

第一种方法: /*** 下载文件到本地* param filePathArr path 文件路径* fileName 文件名* param response* throws IOException*/public static void download(String[] filePathArr, HttpServletResponse response) throws IOException {File fi…

上传和下载数据到服务器,服务器到服务器

1 从windows到Linux服务器 1.1 Xshell 和 Xftp 软件支持管理SSH连接,支持拖拉拽上传下载文件夹/文件,(推荐使用)(拿到Linux的账号和密码就可以使用) 下载链接 https://www.xshell.com/zh/free-for-home-school/ 连接(先名称和主机…

WSL 下载服务器加速

网络下载加速,这里使用修改 hosts 文件 ,地址映射 方法,所有网址适用,这里以 WSL 下载服务器为例子 命令 wsl -l -o 访问的地址: https://raw.githubusercontent.com/microsoft/WSL/master/distributions/Distributi…

微信群聊消失找回方法介绍

​   微信聊天窗口过多难免顶掉了许多群聊窗口,对于这类消失的群聊窗口又应该怎么找回呢,下面就来看看相关的内容吧。 ​ 微信群聊不见了怎么办? 1、打开手机微信,进入“通讯录”页面,找到“群聊”,点开它。 2、点…

微信群聊在哪个服务器,微信怎么找附近的群聊?微信群不见了怎么找?

微信是时下最常用的即时通讯工具之一,群聊也是微信里经常会用到的功能,大家都知道微信摇一摇可以让我们搜索到附近的人然后再添加好友,这是微信的一个特色,那么微信怎么看附近的群聊呢? 微信本身是不能搜索附近的群聊并且加入的&…