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

yizhihongxing

下面就为大家介绍具体的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 实现关联规则算法Apriori的示例

    下面是详细讲解“Python实现关联规则算法Apriori的示例”的完整攻略,包括算法原理、Python实现和两个示例说明。 算法原理 Apriori算法是一种常用的关联规则挖掘算法,其基本思想是通过扫描数据集,找出频繁项集,然后利用频繁项集生成关联规则。具体步骤如下: 扫描数据集,统计每个项的支持度; 根据最小支持度阈值,筛选出频繁项集; 根据频繁1项集,…

    python 2023年5月14日
    00
  • Python3基础语法知识点总结

    Python3基础语法知识点总结 前言 Python是一门非常流行的编程语言,广泛应用于数据科学、人工智能、Web开发、自动化等领域。本文主要介绍Python3语法知识点,适用于Python初学者和需要回顾Python3基础的人员。 目录 数据类型 变量和赋值 条件语句 循环语句 函数 模块 1. 数据类型 Python3内置了多种数据类型,包括数字、字符串…

    python 2023年5月13日
    00
  • 使用python将图片按标签分入不同文件夹的方法

    下面是使用Python将图片按标签分入不同文件夹的方法的完整攻略。 步骤一:安装依赖包 在Python项目中,通常需要用到两个常用的第三方库:Pillow和os,如果你已经安装了Python,可以通过以下命令安装这两个库: pip install Pillow pip install os 步骤二:准备数据 使用python进行图片分类,需要准备一个包含所有…

    python 2023年6月3日
    00
  • pandas之query方法和sample随机抽样操作

    让我们来详细讲解一下“pandas之query方法和sample随机抽样操作”的完整攻略。 Pandas之Query方法 在使用pandas进行数据清洗与分析时,我们经常会使用到筛选操作。而query()方法是pandas中比较常用的一种筛选方式,它可以用类似SQL语句的方式进行筛选,使用方法如下。 使用Syntax DataFrame.query(expr…

    python 2023年6月3日
    00
  • 通过python读取txt文件和绘制柱形图的实现代码

    一、读取txt文件 Python可以通过内置函数open()来实现读取txt文件的功能,具体步骤如下: 打开txt文件并将其存储在一个文件对象中。 with open(‘data.txt’, ‘r’) as file: lines = file.readlines() 其中,’data.txt’为文件路径,’r’为打开文件的模式,表示以只读模式打开文件。 读…

    python 2023年5月18日
    00
  • Python格式化字符串f-string的使用教程

    以下是关于Python格式化字符串f-string的使用教程的完整攻略。 什么是f-string f-string是Python3.6以后引入的一种字符串格式化语法,它能够使Python中的字符串格式化更加简洁、清晰、直观,也更加符合Python的哲学和优雅风格。 其基本语法就是通过在需要格式化的字符串前面添加一个f字母,然后在字符串内部使用大括号{}包住表…

    python 2023年6月5日
    00
  • Python对list列表结构中的值进行去重的方法总结

    以下是“Python对list列表结构中的值进行去重的方法总结”的完整攻略。 1. 使用set()函数 在Python中,我们可以使用set()函数对列表中的元素进行去重。set()函数会将的元素转换为一个集合,集合中的元素是唯一的,不会重复。以下是set()函数的语法: set(iterable) 其中,iterable是要进行去重的可迭代对象,例如列表、…

    python 2023年5月13日
    00
  • python 实现归并排序算法

    下面是关于“Python实现归并排序算法”的完整攻略。 1. 归并排序算法简介 归并排序是一种基于分治思想的排序算法,它将待排序的序列分成若干个子序列,每个子序列都是有序的,然后再将子序列合并成一个有序的序列。归并排序的时间复杂度为O(nlogn),是一种稳定的排序算法。 2. 归并排序算法实现 下面是Python实现归并排序算法的代码: def merge…

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