五分钟学 | 自动化整理文件,是你需要的!

简介: 五分钟学 | 自动化整理文件,是你需要的!

有的时候,电脑用的时间长了,难免会有太多的文件分散在世界(电脑)各地(分区)中,不同类型的文件掺杂在一起,每次要找起来实在是太痛苦了。很多时候都想好好的动手整理一番,但是无奈时间太少(主要是懒),都搁浅了,今天终于下定决心,写一个小程序,来一键完成文件整理,一起来看看吧!

按照文件格式整理

首先我们先来按照文件格式整理,具体来说就是不同的文件后缀名称放置到不同的文件夹当中,如下图这样

是不是看起来相当的清爽啊!

逻辑实现

要实现上面的功能,我们只需要使用 os 和 shutil 两个库就足够了。os 不用多说了,大名鼎鼎的操作系统层面的库,而 shutil 则用来完成文件的移动等操作。

我们先来获取文件的后缀名,方法有很多,我们简单介绍几种

Way1

通过 os 库的方法实现

filename = os.path.splitext('1.jpg')

这样可以得到一个元组,分别是文件的名称和后缀名

('1', '.jpg')

那么再要得到具体的后缀名就很容易了吧

Way2

使用字符串方法 endwith,这个方法也是字符串的一个非常常用的方法哦

file = "1.jpg".endswith(".jpg")

如果结尾字符是 “.jpg” 的话,那么该方法的返回值则为 True,以此我们可以判断文件的后缀名

Way3

通过字符串的 split 方法来提取后缀名

file1 = "1.jpg".split('.')

这样可以得到一个列表,第一个元素就是文件名,第二个元素则是后缀名

接下来我们就是创建对应的文件夹和拷贝文件了,分别用 os.mkdir 和 shutil.copy 来操作即可。

下面我们用 Way1 的方法在当前目录下尝试下

import os
import shutil
files = os.listdir(".")
for f in files:
    if os.path.isfile(f) and not f.startswith('.'):
        folder_name = os.path.splitext(f)[-1]
        folder_name = folder_name.split(".")[-1]
        print(folder_name)
        if not os.path.exists(folder_name):
            os.mkdir(folder_name)
            shutil.copy(f, folder_name)
        else:
            shutil.copy(f, folder_name)

通过上面的代码,我们就可以在当前目录下顺利的整理文件了

当然了,我们也可以使用 Way2 或者 Way3 的方式,只不过需要一些改动。

按照文件大小整理

有的时候,我们也希望把大小类似的文件整理到同一个文件夹当中,那么该如何使用呢?我们可以通过 os 库的 getsize 函数来获取

print(os.path.getsize("1.jpg"))

这样就可以得到该文件的大小,单位是 KB

这样,我们通过文件大小来整理文件的代码也呼之欲出了

import os
import shutil
files = os.listdir(".")
for f in files:
    if os.path.isfile(f) and not f.startswith('.'):
        size = os.path.getsize(f)
        if size < 1000:
            folder_name = "Under_one_MB"
            if not os.path.exists(folder_name):
                os.mkdir(folder_name)
                shutil.copy(f, folder_name)
            else:
                shutil.copy(f, folder_name)
        elif 10000 <= size < 2000:
            folder_name = "Under_two_MB"
            if not os.path.exists(folder_name):
                os.mkdir(folder_name)
                shutil.copy(f, folder_name)
            else:
                shutil.copy(f, folder_name)

怎么样,是不是蛮简单有效的,好了,今天的分享就到这里了,我们下次再见!


相关文章
|
5天前
|
BI Python
python报表自动化系列 - 获取指定目录所有文件绝对路径
python报表自动化系列 - 获取指定目录所有文件绝对路径
29 0
|
5天前
|
Shell Linux
shell 脚本常用于自动化执行文件备份与压缩的任务
shell 脚本常用于自动化执行文件备份与压缩的任务
33 1
|
5天前
|
安全 Linux Android开发
自动化脚本之文件搜索显示
自动化脚本之文件搜索显示
17 0
|
5天前
|
数据采集 机器学习/深度学习 数据可视化
【办公自动化】使用Python批量处理Excel文件并转为csv文件
【办公自动化】使用Python批量处理Excel文件并转为csv文件
58 0
|
7月前
|
Linux iOS开发 MacOS
编程小白的自学笔记十四(python办公自动化创建、复制、移动文件和文件夹)
编程小白的自学笔记十四(python办公自动化创建、复制、移动文件和文件夹)
|
5天前
|
存储 自然语言处理 数据可视化
【办公自动化】用Python按时间分割txt文件中的数据
【办公自动化】用Python按时间分割txt文件中的数据
61 1
|
5天前
|
编解码 数据可视化 数据挖掘
【办公自动化】用Python将PDF文件转存为图片
【办公自动化】用Python将PDF文件转存为图片
75 1
|
3天前
|
Python
Python办公自动化|自动整理文件,一键完成!
Python办公自动化|自动整理文件,一键完成!
|
5天前
|
Python
Python自动化办公实战案例:文件整理与邮件发送
Python自动化办公实战案例:文件整理与邮件发送
10 0
|
5天前
|
数据可视化 Python
Python办公自动化【合并单元格-openpyxl、增加图表-openpyxl、合并工作薄-openpyxl、合并多个文件工作薄-openpyxl】(三)-全面详解(学习总结---从入门到深化)(上)
Python办公自动化【合并单元格-openpyxl、增加图表-openpyxl、合并工作薄-openpyxl、合并多个文件工作薄-openpyxl】(三)-全面详解(学习总结---从入门到深化)
161 2

热门文章

最新文章