python3.7 利用函数os pandas利用excel对文件名进行归类

下面就为大家介绍具体的Python3.7利用函数ospandas利用Excel对文件名进行归类的实例教程。

目标

我们想要完成的目标是,将指定文件夹下的所有文件按照其名称中的关键字归类到对应的文件夹中。

准备工作

在实现之前,我们需要准备以下工作:

  • Python3.7环境
  • Pandas库
  • Numpy库
  • openpyxl库

你可以使用pip安装这些库,命令如下:

pip install pandas numpy openpyxl

实现步骤

  1. 创建一个Excel文件,用以记录文件名的归类规则。例如我们创建一个Workbook1.xlsx文件。
  2. 在Excel文件中创建一个名为“Sheet1”的工作表,并添加下列列:[关键字],[文件夹名],[文件夹路径]。
  3. 将归类规则填入工作表中,例如如下所示:
关键字 文件夹名 文件夹路径
apple 水果 /Users/Jack/desktop/Test/水果
pear 水果 /Users/Jack/desktop/Test/水果
banana 水果 /Users/Jack/desktop/Test/水果
dog 宠物 /Users/Jack/desktop/Test/宠物
cat 宠物 /Users/Jack/desktop/Test/宠物
rabbit 宠物 /Users/Jack/desktop/Test/宠物
car 汽车 /Users/Jack/desktop/Test/汽车

注意:文件夹路径应该是绝对路径,因为在程序中需要使用。

  1. 编写Python程序。下面是完整代码实例:
import os
import pandas as pd


def parse_excel(file: str) -> list:
    """解析Excel文件,返回一个包含归类规则的字典列表"""
    df = pd.read_excel(file)
    rules = []
    for _, row in df.iterrows():
        rule = {'keywords': row['关键字'],
                'folder_name': row['文件夹名'],
                'folder_path': row['文件夹路径']}
        rules.append(rule)
    return rules


def classify_files(folder_path: str, rules: list):
    """将指定文件夹下的文件按照归类规则归类到对应的文件夹中"""
    for root, _, files in os.walk(folder_path):
        for file in files:
            for rule in rules:
                if rule['keywords'] in file:
                    folder = rule['folder_path']
                    if not os.path.exists(folder):
                        os.makedirs(folder)
                    src = os.path.join(root, file)
                    dst = os.path.join(folder, file)
                    os.rename(src, dst)


if __name__ == '__main__':
    # 解析Excel文件,获取归类规则
    rules = parse_excel('/Users/Jack/desktop/Test/Workbook1.xlsx')
    # 将指定文件夹下的文件按照归类规则归类到对应的文件夹中
    classify_files('/Users/Jack/desktop/Test', rules)

程序分为两个函数。第一个函数用于解析Excel文件,将其中的归类规则转换为列表储存。第二个函数用于将指定文件夹下的文件按照归类规则归类到对应的文件夹中。

程序中涉及到了Pandas和os库的使用。Pandas用于读取Excel文件,os用于文件操作。

需要注意的是,为了实现归类操作,我们需要使用os库的rename函数,故在使用前需要确保相关目录有操作权限。

  1. 在终端中执行程序。执行成功后,指定文件夹下的文件将会按照归类规则被归类到对应的文件夹中。

示例说明

为了更好地理解上述内容,这里提供两个实际的示例说明。

示例1:按照图片拍摄日期归类

我们有一堆图片,需要按照拍摄日期归类到对应的文件夹中。可以创建如下的Excel文件来规定归类规则:

关键字 文件夹名 文件夹路径
202101 2021年1月 /Users/Jack/desktop/Test/图片/2021年1月
202102 2021年2月 /Users/Jack/desktop/Test/图片/2021年2月
202103 2021年3月 /Users/Jack/desktop/Test/图片/2021年3月

其中关键字部分包含了每个文件的拍摄日期信息。我们可以使用Pandas包的read_excel方法读取Excel文件,得到包含了归类规则的列表。然后遍历指定文件夹下的所有文件,根据文件名中的拍摄日期信息和归类规则的关键字信息,将文件按照指定规则归类到对应的文件夹中。

示例2:按照文件类型归类

我们有很多文件,需要按照文件类型归类到对应的文件夹中。可以创建如下的Excel文件来规定归类规则:

关键字 文件夹名 文件夹路径
.pdf PDF /Users/Jack/desktop/Test/资料/PDF
.jpg 图片 /Users/Jack/desktop/Test/资料/图片
.docx Word /Users/Jack/desktop/Test/资料/Word

其中关键字部分包含了每个文件的文件类型信息。我们可以使用Pandas包的read_excel方法读取Excel文件,得到包含了归类规则的列表。然后遍历指定文件夹下的所有文件,根据文件名中的文件类型信息和归类规则的关键字信息,将文件按照指定规则归类到对应的文件夹中。

以上就是本次Python3.7利用函数Ospandas利用Excel对文件名进行归类的完整实例教程,希望可以帮助到大家。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python3.7 利用函数os pandas利用excel对文件名进行归类 - Python技术站

(0)
上一篇 2023年5月13日
下一篇 2023年5月13日

相关文章

  • python实现列表的排序方法分享

    Python实现列表的排序方法分享 在Python中,我们可以使用内置的sort()函数和sorted()函数来对列表进行排序。本攻略将介绍如何使用这两个函数对列表进行排序,并提供示例代码演示。 sort()函数 sort()函数是Python内置的列表排序函数,它可以对列表进行原地排序,即直接修改原列表。sort()函数有两个可选参数:reverse和ke…

    python 2023年5月13日
    00
  • 不被别人察觉 Android手机的图形锁如何破解?

    对于这个问题,我作为网站作者,首先要明确一点:破解他人手机的图形锁是不道德且可能违法的行为,网站不会鼓励或者支持这种行为。在这里,我只能提供相关技术原理和可能的解决方案,而不会直接介绍破解方法。 在实际操作中,破解Android手机图形锁的方法多种多样,包括但不限于以下几种: 通过adb命令直接修改图形锁密码 这种方法需要在系统开启USB调试的情况下进行,具…

    python 2023年6月3日
    00
  • Python爬取视频时长场景实践示例

    Python爬取视频时长场景实践示例 在进行视频相关业务开发的过程中,有时候需要获取到视频的时长信息。而在爬取网络中的视频时长信息时,常常需要使用Python。本文将从实践角度出发,分享爬取视频时长的一些方式,在最后还附带几条相关的技巧。 方式一:使用FFmpeg获取时长 FFmpeg是一款跨平台的音视频处理工具,可以从视频文件中提取出视频时长信息。在Pyt…

    python 2023年6月2日
    00
  • 在Python中关于中文编码问题的处理建议

    关于Python中的中文编码问题,我们需要考虑两个方面,即输入和输出。在输入方面,我们需要确保读入的中文字符能够正确地转换为Python字符串,而在输出方面,我们希望能够将Python字符串正确地输出为中文字符。 关于输入 在Python 3中,字符串是默认使用Unicode编码的,因此我们读入的字符串数据也需要满足这个格式。如果我们使用Python标准库读…

    python 2023年5月31日
    00
  • 详解Python中的字符串格式化

    详解Python中的字符串格式化 为什么需要字符串格式化 在Python中,字符串是非常常见的数据类型。在实际开发中,有时候需要将变量的值插入字符串中。例如,我们需要输出一个名字为”Tom”,年龄为20岁的人的信息,需要将这个信息插入到一个字符串中,然后输出。这个时候,就需要用到字符串格式化。 字符串格式化的方法 在Python中,字符串格式化通常有两种方法…

    python 2023年6月5日
    00
  • Python数据类型和常用操作

    下面是关于“Python数据类型和常用操作”的完整攻略。 数据类型 Python中常用的数据类型有: 整数(int) 浮点数(float) 字符串(str) 列表(list) 元组(tuple) 字典(dict) 布尔值(bool) 集合(set) 其中,整数、浮点数和字符串是比较基础的数据类型,后面的类型可以看作是对这些基础类型进行进一步的封装和组合。 常…

    python 2023年5月13日
    00
  • 使用IPython或Spyder将省略号表示的内容完整输出

    使用IPython或Spyder将省略号表示的内容完整输出,可以使用以下两种方法。 方法一:使用 pandas 设置控制台输出的最大列宽和最大行数 在 IPython 或 Spyder 中使用 pandas 库操作数据时,输出结果默认会对列宽和行数进行限制,数据量大时可能会显示省略号。可以通过以下代码设置最大列宽和最大行数来完整输出数据。 import pa…

    python 2023年6月5日
    00
  • Python实现数据可视化看如何监控你的爬虫状态【推荐】

    Python实现数据可视化看如何监控你的爬虫状态【推荐】攻略 什么是数据可视化? 数据可视化是在统计分析的基础上使用图形化的表达方式,展示数据之间的联系、趋势等信息,使得人们对于数据有更直观、更深入、更全面的理解。 为何需要数据可视化? 数据可视化可以让数据更有说服力地传达信息,更方便人们大量数据之间的比较和分析,弥补了数据本身只是数字、文本的不足,相应地,…

    python 2023年5月14日
    00
合作推广
合作推广
分享本页
返回顶部