腾讯良心软件,被秒了!

简介: 在使用电脑的时候,我一直有个困扰,每次下载的文件都会默认选择一个文件夹,例如Downloads。

在使用电脑的时候,我一直有个困扰,每次下载的文件都会默认选择一个文件夹,例如Downloads

微信图片_20220421215349.png

任何种类的文件都混在那个文件夹里。

你有同样的问题吗?

如果你的回答是肯定的,那么,本文一定会对你起到一定的作用。

准备工作

我的文件有三个类别,取决于扩展名,如果你有自己的类别,可以继续添加:

  • 文件(.pdf、.docx、和.txt)
  • 音频(.m4a、.m4b和.mp3)
  • 图片 (.jpg, .jpeg, 和 .png)

然后,我想把每个文件移到一个具有预定义类别的文件夹中。

看到这里,关注平凡而诗意的同学应该知道,很久之前我分享过腾讯一款名为DeskGo的软件,可以实现这项功能,DeskGo也算得上腾讯难得的良心产品。

但是,或许很多同学并不是喜欢腾讯系软件臃肿、吃相难看的样子。

因此,本文就动手自己开发一款专属,而且更加好用的DeskGo

开发

导入模块ospathlib,对路径、文件和目录进行操作。

import os
from pathlib import Path

用你在准备工作中的清单,使用字典格式定义文件类别:

SUBDIR = {
        "DOCUMENTS":[".pdf",".docx",".txt"],
        "AUDIO":[".m4a",".m4b",".mp3"],
        "IMAGES":[".jpg",".jpeg",".png"]
        }

如果你想满足自己个性化的需求,你只需要把key-value修改成对应的文件类型-扩展名即可。

从已知的扩展名中挑选类别名称的功能。只需循环并检查你的文件扩展名,然后返回类别:

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

下面是主函数部分:

def organizeDir():
    for item in os.scandir():
        if item.is_dir():
                continue
        filePath = Path(item)
        fileType = filePath.suffix.lower()
        directory = pickDir(fileType)
        if directory == None:
            continue
        directoryPath = Path(directory)
        if directoryPath.is_dir() != True:
                directoryPath.mkdir()
        filePath.rename(directoryPath.joinpath(filePath))

调用organizationDir函数:

organizeDir()

运行

下面,就来运行代码,对比一下效果。

整理前

image.gif微信图片_20220421215356.png

整理后

微信图片_20220421215359.png

下面是完整的代码:

import os
from pathlib import Path
SUBDIR = {
        "DOCUMENTS":[".pdf",".docx",".txt"],
        "AUDIO":[".m4a",".m4b",".mp3"],
        "IMAGES":[".jpg",".jpeg",".png"]
        }
def pickDir(value):
    for category, ekstensi in SUBDIR.items():
        for suffix in ekstensi:
            if suffix == value:
                return category
def organizeDir():
    for item in os.scandir():
        if item.is_dir():
                continue
        filePath = Path(item)
        fileType = filePath.suffix.lower()
        directory = pickDir(fileType)
        if directory == None:
            continue
        directoryPath = Path(directory)
        if directoryPath.is_dir() != True:
                directoryPath.mkdir()
        filePath.rename(directoryPath.joinpath(filePath))
if __name__ == '__main__':
  organizeDir()

感兴趣的同学,赶快试一下吧!

相关文章
|
存储 安全 JavaScript
如何安全的渲染HTML字符串?
如何安全的渲染HTML字符串?
491 0
《跟老卫学仓颉编程语言开发》实战:猜数字游戏
本文介绍了用仓颉语言开发的一个简单猜数字游戏,综合运用了流程控制、标准输入、字符串操作和整型比较等知识。程序生成1到100之间的随机整数,用户通过标准输入猜数字,程序提示“太大”或“太小”,直至猜中并显示祝贺信息。代码使用`std.console`包处理输入,`std.convert`包实现字符串转整型,通过`if-else`判断大小,`while`循环支持多次输入。示例源于《跟老卫学仓颉编程语言开发》,源码可在其GitHub仓库获取。
650 0
|
存储 安全 数据安全/隐私保护
4S店、分公司远程访问总部DMS系统,贝锐花生壳提供高性价比方案
在汽车销售与服务行业,DMS(经销商管理系统)是日常运营的重要工具,涵盖销售、库存、售后等模块。传统远程访问方案如专线或VPN成本高且复杂,而贝锐花生壳内网穿透提供了一种高效、安全、低成本的替代方案。无需公网IP和复杂配置,只需三步即可实现DMS系统的远程访问,并支持加密传输和精细访问控制,确保数据安全。
408 16
|
网络安全
window系统下安装elk
本文介绍了Elasticsearch、Logstash和Kibana(统称ELK栈)8.17.3版本的安装与配置流程。主要内容包括: - **Elasticsearch**:详细描述了从下载到启动服务的步骤,以及`elasticsearch.yml`的关键配置项,并提供了Postman操作示例及常见问题解决方案。 - **Logstash**:涵盖了插件安装、配置文件`logstash.conf`编写及其启动命令。 - **Kibana**:讲解了下载、配置`kibana.yml`和启动过程,确保与Elasticsearch正确连接。
|
机器学习/深度学习 算法 数据可视化
UniApp手机滑块验证组件代码生成器
UniApp手机滑块验证组件代码生成器
1328 1
|
算法 机器人 语音技术
由通义千问驱动的人形机器人具身智能Multi-Agent系统
申昊科技人形机器人小昊,集成通义千问多模态大模型的具身智能系统,旨在讲解销售、迎宾表演等场景。机器人通过语音、动作等方式与用户互动,利用云端大语言模型处理自然语言,结合视觉、听觉等多模态感知技术,实现流畅的人机对话、目标追踪、展厅讲解等功能。
1808 4
由通义千问驱动的人形机器人具身智能Multi-Agent系统
|
IDE API 开发工具
Gleam
Gleam 是面向 Erlang 虚拟机的类型化语言,Gleam 的语法对于类型化语言来说非常优雅和简单。如果能看到 Gleam 像 Elixir 一样成功,那就太酷了。
923 4
|
存储 算法 安全
密码学系列之九:密钥管理
密码学系列之九:密钥管理
3067 45
|
开发框架 JavaScript 前端开发
十分钟上手-搭建vue2.0开发环境(新手教程一)
十分钟上手-搭建vue2.0开发环境(新手教程一)
338 2
|
C语言
C语言中如何避免循环死循环
C语言中如何避免循环死循环
936 1