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中使用pngquant压缩png图片的教程

    在Python中使用pngquant压缩png图片的教程 PNG图片是现代网站中广泛使用的一种图片格式。然而,由于它的大小相对较大,因此可能会导致网站加载速度变慢。为了解决这个问题,我们可以使用一个叫做pngquant的工具来压缩PNG图片的大小。Python中可以通过调用system函数或者通过Python包来使用pngquant工具。这里我们将介绍如何使…

    python 2023年5月19日
    00
  • 总结的几个Python函数方法设计原则

    下面我来详细讲解一下“总结的几个Python函数方法设计原则”的完整攻略。 标题 在阐述这个问题之前,我们先来看一下什么是函数方法设计原则。 正文 函数方法设计原则 函数是程序中有用的编程结构,它可以把一段代码作为独立的单元进行封装和调用。而函数方法设计就是为了让我们写出高质量、易于维护的函数。 在Python中,函数和方法的设计原则也是一样的,我们可以总结…

    python 2023年6月5日
    00
  • Python3 Tkinter选择路径功能的实现方法

    下面我来详细讲解“Python3 Tkinter选择路径功能的实现方法”的完整攻略。 一、介绍 在开发桌面应用程序时,可能需要用户通过图形界面选择某个文件或路径。Python3自带的图形用户界面(GUI)库Tkinter提供了一些强大的控件,其中就包括了文件选择器(File Dialog)控件,用于选择文件或文件夹路径。本攻略主要讲解如何使用Tkinter选…

    python 2023年6月13日
    00
  • Python基础学习之函数方法实例详解

    Python基础学习之函数方法实例详解,主要介绍了Python函数的基础知识、常用方法和实际应用。本文将从以下几个方面来进行详细讲解: 函数基础知识 在Python中,函数是具有特定功能的可重复使用的代码段。函数的目的是实现代码的模块化,将程序分成独立的部分,使得代码结构更加清晰、易于维护。Python中定义函数的语法如下: def 函数名(参数1,参数2,…

    python 2023年5月30日
    00
  • python加载自定义词典实例

    下面是关于“Python加载自定义词典实例”的完整攻略: 1. 简介 在 Python 中,我们可以使用 jieba 库进行中文分词。jieba 库有自己的词典,但是有时候我们需要加载自己的词典,以便更好地满足独特的分词需求。 2. 加载自定义词典 2.1 安装 jieba 库 首先需要安装 jieba 库。可以通过 pip 工具进行安装: pip inst…

    python 2023年5月13日
    00
  • python获取代码运行时间的实例代码

    导入time模块 获取代码运行时间需要用到time模块中的time函数,因此我们首先需要导入time模块。导入的方式如下: import time 获取代码开始时间 我们需要在代码运行前获取当前时间,标记该时间为代码开始运行的时间。获取当前时间的代码如下: start_time = time.time() 获取代码结束时间 代码运行结束后,我们需要再次获取当…

    python 2023年6月2日
    00
  • 如何使用Python在MySQL中使用自增长键?

    在MySQL中,可以使用自增长键来自动为表中的每一行生成唯一的标识符。在Python中,可以使用MySQL连接来执行自增长键查询。以下是在Python中使用自增长键的完整攻略,包括自增长的基本语法、使用自增长键的示例以及如何在Python中使用自增长键。 自增长键的基本语法 在MySQL中,可以使用AUTO_INCREMENT关键字来指自增长键列。以下是创建…

    python 2023年5月12日
    00
  • Python中基础数据类型 set集合知识点总结

    下面我会为您详细讲解“Python中基础数据类型set集合知识点总结”的攻略。 什么是set集合 set是一种基本的数据类型,是一个无序的、不重复的集合。set集合类似于列表和元组,但是set中的元素不可以重复且没有顺序,因此可以用set去除一个列表或者元组中的重复元素。 set集合的创建 set集合可以通过以下方式创建: 直接创建 set集合可以通过花括号…

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