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

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

按照文件格式整理


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

微信图片_20220520172255.png

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


逻辑实现

要实现上面的功能,我们只需要使用 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)

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


相关文章
|
4月前
|
BI Python
python报表自动化系列 - 获取指定目录所有文件绝对路径
python报表自动化系列 - 获取指定目录所有文件绝对路径
42 0
|
4月前
|
Web App开发 Java 测试技术
《手把手教你》系列技巧篇(五十六)-java+ selenium自动化测试-下载文件-上篇(详细教程)
【5月更文挑战第20天】本文介绍了自动化测试中如何实现无弹窗下载文件,主要针对Firefox浏览器。作者指出,通常的下载操作包括点击下载按钮,但这里讨论的是避免下载弹窗直接保存文件的方法。文章详细讲解了通过设置Firefox参数(如`browser.download.dir`、`browser.helperApps.neverAsk.saveToDisk`等)来实现这一功能,并给出了Java Selenium的示例代码,展示了如何创建FirefoxProfile并进行相关设置,以及如何启动浏览器和执行下载操作。
89 0
《手把手教你》系列技巧篇(五十六)-java+ selenium自动化测试-下载文件-上篇(详细教程)
|
4月前
|
数据采集 机器学习/深度学习 数据可视化
【办公自动化】使用Python批量处理Excel文件并转为csv文件
【办公自动化】使用Python批量处理Excel文件并转为csv文件
136 0
|
4月前
|
安全 Linux Android开发
自动化脚本之文件搜索显示
自动化脚本之文件搜索显示
33 0
|
11天前
|
存储 数据挖掘 测试技术
Python接口自动化中操作Excel文件的技术方法
通过上述方法和库,Python接口自动化中的Excel操作变得既简单又高效,有助于提升自动化测试的整体质量和效率。
18 0
|
4月前
|
存储 自然语言处理 数据可视化
【办公自动化】用Python按时间分割txt文件中的数据
【办公自动化】用Python按时间分割txt文件中的数据
106 1
|
4月前
|
编解码 数据可视化 数据挖掘
【办公自动化】用Python将PDF文件转存为图片
【办公自动化】用Python将PDF文件转存为图片
136 1
|
3月前
|
XML Java 测试技术
《手把手教你》系列技巧篇(六十七)-java+ selenium自动化测试 - 读写excel文件 - 中篇(详细教程)
【6月更文挑战第8天】本文介绍了Java中操作Excel的工具,包括POI和JXL。POI支持处理Office 2003及以下的OLE2格式(.xls)和2007以上的OOXML格式(.xlsx)。而JXL只能处理2003版本的Excel文件。文章详细讲解了如何下载和使用JXL库,并给出了一个简单的Java代码示例,展示如何读取2003版Excel文件中的数据。在实际项目中,由于JXL对新版本Excel的支持限制,通常推荐使用POI。
64 5
|
3月前
|
Java 测试技术 Apache
《手把手教你》系列技巧篇(六十八)-java+ selenium自动化测试 - 读写excel文件 - 下篇(详细教程)
【6月更文挑战第9天】本文介绍了如何使用Java处理Excel文件中的不同数据类型,包括日期、数字、布尔值和标签(常规字符串)。文章提供了两个示例,分别使用JXL库和Apache POI库来读取Excel文件。
44 1
|
3月前
|
Java 测试技术 Apache
《手把手教你》系列技巧篇(六十六)-java+ selenium自动化测试 - 读写excel文件 - 上篇(详细教程)
【6月更文挑战第7天】本文介绍了在Java自动化测试中如何操作Excel数据。文章提到了当测试数据存储在Excel文件时,可以使用Apache的POI库来读写Excel。POI提供了对OLE2(.xls)和OOXML(.xlsx)格式的支持,比JXL库功能更全面。文章还详细讲解了如何下载和添加POI库到项目中,以及准备测试用的Excel文件。最后,给出了一个简单的Java代码示例,演示如何读取Excel文件的内容。
43 1