教程:使用Python自动分类整理照片

作为一个热爱摄影的摄影师或者只是一个热爱拍照的普通人,你的电脑可能积累了大量的照片。这些照片散落在各个文件夹中,有时候你可能会感到疑惑,不知道应该如何将它们有序地整理起来。手动分类和整理这些照片是一项耗时耗力的工作,但好在有Python这个强大的工具,可以帮助你自动化这一过程。在本教程中,我将向你展示如何使用Python编写一个脚本,自动分类整理你的照片。

步骤 1:导入必要的库

首先,我们需要导入一些Python库,以便后续的操作。我们将使用os库来处理文件和文件夹,使用re库来进行正则表达式匹配,以及使用shutil库来移动文件。

import os
import re
import os.path as osp
import shutil

步骤 2:设置正则表达式

我们将使用正则表达式来匹配文件名,以便筛选出照片文件。在本例中,我们希望筛选出以.jpg结尾的文件,因此设置了一个正则表达式。

reg = re.compile(r'.*(.jpg)$')  # 以jpg结尾匹配照片

步骤 3:获取照片文件路径列表

接下来,我们需要获取当前工作路径下所有照片文件的绝对路径,并将它们存放在一个列表内。以下是获取文件路径列表的代码:

def file_path():
    """
    获取当前工作路径下所有照片绝对路径,并存放在一个列表内
    """
    file_path = []  # 照片文件路径列表
    filenames = os.listdir(path)  # 获取当前文件夹下的所有文件名
    list_j = [osp.join(path, x) for x in filenames if osp.isfile(osp.join(path, x))
              if reg.findall(x)]  # 获取照片的文件名,并拼接完整路径
    for s in list_j:
        if s:  # 非空
            file_path.append(s)

    # 根据文件名中的时间排序
    file_path.sort(key=lambda x: osp.basename(osp.splitext(x)[0])[8:19], reverse=False)

    return file_path

这段代码首先使用os.listdir函数获取当前工作路径下的所有文件名,然后通过正则表达式筛选出以.jpg结尾的文件,并将它们的绝对路径存放在file_path列表中。最后,我们对文件路径列表进行排序,以确保照片按照时间顺序排列。

步骤 4:分类和整理照片

现在,我们将编写代码来自动分类和整理照片。用户可以输入要创建的文件夹名称和每个文件夹应包含的照片数量。脚本将按照用户的要求创建文件夹,并将照片移动到相应的文件夹中。

def fenlei():
    while True:
        summ = 0
        dic = {}
        lit = []
        resm = len(file_path())
        name = input("请输入要创建的文件夹名称:")
        if not name:
            break
        else:
            num = int(input("请输入照片数量:"))
            summ += num  # 分配照片数量
            resm -= num  # 剩余照片数量
            if not num:
                break
            else:
                print(f'此文件夹共分配{summ}张照片', f"{f'还剩{resm}张照片待分配':.^30}")
                for i in range(summ):
                    lit.append(file_path()[i])
                    dic[name] = lit

        new_path = osp.join(path, name)
        if not osp.exists(new_path):
            os.mkdir(new_path)
        for file in lit:
            shutil.move(file, new_path)

        print()
        sr = input("是否继续创建文件夹?(y/n): ")
        if sr == "y":
            continue
        else:
            src = osp.basename(path) + "-已分类"
            dst = osp.join(osp.dirname(path), src)
            os.rename(path, dst)  # 重命名已分类
            print(f"{'照片已全部分好':.^34}")
            break

这段代码实现了一个循环,让用户可以连续创建多个文件夹并分配照片。用户需要输入文件夹名称和照片数量。脚本将根据用户的输入创建文件夹,并将照片移动到相应的文件夹中。用户可以选择继续创建文件夹或退出。

结语

通过本教程,你已经学会了如何使用Python编写一个简单的脚本,用于自动分类和整理照片。这个技巧可以帮助你节省时间,使文件整理变得更加高效。无论是整理照片还是其他类型的文件,Python都可以为你提供强大的自动化工具,希望你能充分利用这个方法,让文件整理变得轻松愉快!

本文由作者 王大神 原创发布于 大神网的AI博客。

转载请注明作者:王大神

原文出处:教程:使用Python自动分类整理照片

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 2023年9月21日
下一篇 2023年9月21日

相关推荐

  • 解决Python集合计算问题的完美方案

    在Python中,有许多强大的第三方库和轮子可用于各种任务,但要找到一个能够满足您的需求的集合计算包可能会有些挑战。您需要一个能够处理不同类型的集合并保持输入顺序的解决方案。在本文中,我将为您介绍一种解决…

    2023年10月31日
    00
  • 用Python复制粘贴Excel指定单元格:保留格式的技巧

    嗨,亲爱的数据处理骑士!是否有过这样的经历:你正在处理一个重要的Excel表格,需要将其中某些特定的单元格内容复制到另一个地方,但又发现简单的复制粘贴并不能满足你的需求,因为你希望保留原始单元格的格式,包…

    2023年9月25日
    00
  • python爬虫爬小姐姐示例代码

    Python 爬虫是一项强大的技能,它可以帮助我们从互联网上自动获取数据。然而,除了用于实际的数据采集,爬虫还经常被用来获取一些有趣的内容,比如小姐姐的照片。本教程将向您展示如何使用 Python 编写一个简单的爬…

    2023年4月11日
    00
  • 微软将Python直接融入Excel:办公软件的双进化

    近年来,Python和Excel一直在办公软件领域扮演着重要的角色。Python以其强大的编程功能和丰富的库生态备受欢迎,而Excel则是数据处理和分析的利器,几乎成了每个办公室的标配工具。然而,最近微软带来了令人振奋的…

    2023年8月25日
    00
  • 从VCF到CSV:将联系人数据格式转换的Python教程

    在数字化时代,我们经常需要在不同的应用程序和设备之间共享联系人信息。然而,不同的应用程序和设备可能使用不同的联系人数据格式,这可能会导致数据转换的问题。在这篇文章中,我将向你介绍如何使用Python来将.vc…

    2023年9月27日
    00
  • Python函数解析:为什么它们如此重要以及如何使用它们

    开篇故事 想象一下,您正在编写一个复杂的程序,需要完成各种任务,从数据处理到用户界面的创建。每个任务都需要独立的代码块来完成,但是如果您把所有的代码都写在一个文件里,会变得非常混乱,难以维护。这时,Py…

    2023年10月11日
    02
  • Python中的`input`函数:Linux环境下为何无阻塞现象

    张杰是一个资深的Python开发者,他最近在Linux环境下遇到了一个令人困惑的问题:当他在socket通信中使用input函数时,该函数在某些情况下似乎不会阻塞。他很困惑,因为在其他情况下,input函数总是如预期那样工作的…

    2023年10月9日
    00
  • 如何从PPT文件中提取文本

    在处理PPT文件时,有时我们需要将其中的文本提取出来以进行后续处理或分析。可能是需要编辑PPT中的文本,或者将其中的文字内容用于其他用途。不论你的需求是什么,本教程将向你展示如何使用Python来轻松从PPT文件中…

    2023年10月10日
    00
  • 自动获取Steam限时免费游戏信息并实时推送教程

    假设你是一位热爱玩游戏的玩家,而且还热衷于追踪Steam平台上的限时免费游戏优惠。你不想错过任何一个免费游戏的机会,因此你希望能够及时获取到这些信息,并在游戏免费期间立刻领取。但是,为了获取这些信息,你不…

    2023年9月21日
    00
  • 创建自动化试卷生成工具:使用Python和OpenPyXL

    你是否曾经需要为学生创建大量的试卷,但又不想手动编写每一份试卷?在这个教程中,我们将使用Python编写一个自动化试卷生成工具,可以根据题库随机生成试卷,并保存为Word文档。无需编程经验,我们将一步步引导你…

    2023年9月13日
    00