Python3如何将源目录中的图片用MD5命名并可以设定目标目录

yizhihongxing

下面是针对这个问题的详细讲解:

1. 生成MD5值

首先需要使用Python3中的hashlib库生成MD5值。以下是一个简单的示例代码:

import hashlib

def get_md5(filename):
    m = hashlib.md5()  # 初始化哈希算法对象
    with open(filename, 'rb') as f:
        while True:
            data = f.read(1024)  # 每次读取1024字节
            if not data:
                break
            m.update(data)  # 更新哈希值
    return m.hexdigest()

其中,get_md5()函数接受一个文件名作为参数,返回对该文件生成的MD5值。这里使用rb模式打开文件是因为需要以二进制方式读取。

2. 重命名文件

接下来需要将目录中的文件重命名,以MD5值作为新的文件名。以下是一个简单的示例代码:

import os

src_dir = '/path/to/source/directory'
dst_dir = '/path/to/destination/directory'

for filename in os.listdir(src_dir):
    src_path = os.path.join(src_dir, filename)
    if os.path.isfile(src_path):
        md5 = get_md5(src_path)
        ext = os.path.splitext(filename)[-1]  # 获取文件扩展名
        dst_path = os.path.join(dst_dir, md5+ext)
        os.rename(src_path, dst_path)

上述代码中,src_dirdst_dir分别代表源目录和目标目录的路径。遍历源目录中的每个文件,计算出它的MD5值并将其作为新的文件名,最后使用os.rename()函数重命名文件。

注意,由于涉及到文件操作,需要确保你有足够的权限进行读写操作。此外,在重命名文件之前最好先进行一次备份操作,以防意外情况发生。

示例说明:

示例1:

我们有一个源目录/images,其中包含以下几个文件:

|-/images
  |-1.jpg
  |-2.jpg
  |-3.jpg

我们希望将这些文件重命名并移动到目标目录/dest下,以MD5值作为新的文件名。这时可以将上述示例代码保存为rename.py,并在终端中运行:

$ python rename.py

运行完毕后,目标目录中应该出现了以下文件:

|-/dest
  |-c4ca4238a0b923820dcc509a6f75849b.jpg
  |-c81e728d9d4c2f636f067f89cc14862c.jpg
  |-eccbc87e4b5ce2fe28308fd9f2a7baf3.jpg

示例2:

在示例1的基础上,我们希望将图片文件的扩展名改为.png。这时可以在代码中添加一行代码:

    ext = '.png'  # 修改扩展名为.png

并重新运行上述代码即可。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python3如何将源目录中的图片用MD5命名并可以设定目标目录 - Python技术站

(0)
上一篇 2023年6月3日
下一篇 2023年6月3日

相关文章

  • matplotlib savefig 保存图片大小的实例

    我来介绍一下“matplotlib savefig 保存图片大小的实例”的完整攻略。 问题描述 在使用matplotlib库的savefig()函数保存图片时,我们可能会遇到保存的图片大小不合适的情况,比如太小或太大。那么,在使用matplotlib库的savefig()保存图片时,如何准确地控制保存图片的大小呢? 解决方案 我们可以通过以下两种方法来控制保…

    python 2023年5月18日
    00
  • Python这样操作能存储100多万行的xlsx文件

    下面是Python操作存储100多万行xlsx文件的完整实例教程。 环境要求 Python3.x pandas库 实现步骤 读取数据 使用pandas库的read_excel方法读取xlsx文件,将数据存储到DataFame中,例如: import pandas as pd df = pd.read_excel(‘data.xlsx’) 拆分数据 我们将数据…

    python 2023年5月13日
    00
  • python3实现抓取网页资源的 N 种方法

    Python3可以使用多种方法来抓取网页资源,本文将详细讲解Python3实现抓取网页资源的N种方法,包括使用requests库、urllib库、selenium库、beautifulsoup库和scrapy框架等。 使用requests库实现抓取网页资源的示例 以下是一个示例,演示如何使用requests库实现抓取网页资源: import requests…

    python 2023年5月15日
    00
  • Python threading和Thread模块及线程的实现

    Python是一门支持多线程编程的语言,它提供了threading和Thread模块来支持多线程编程。线程是程序中一个独立的执行流程,Python中的多线程可以充分利用多核CPU的优势,从而提高程序的并发能力和效率。 Thread模块 Thread模块是Python提供的最简单的多线程实现方式,它包含了线程相关的一些基础操作函数和类。在使用Thread模块时…

    python 2023年5月19日
    00
  • django模型中的字段和model名显示为中文小技巧分享

    以下是“Django模型中的字段和model名显示为中文小技巧分享”的完整攻略: step 1:安装django-modeltranslation 要实现将Django模型中的字段和model名显示为中文,我们需要借助django-modeltranslation这个第三方库。在安装之前,确保你的Django版本为1.8以上,且已经安装好了pip工具。 在终…

    python 2023年5月18日
    00
  • 如何在Python中使用PyMongo库连接MongoDB数据库?

    以下是如何在Python中使用PyMongo库连接MongoDB数据库的完整使用攻略,包括安装PyMongo库、连接MongoDB数据库、插入数据、查询数据等步骤。同时,提供了两个示例以便更好理解如何使用PyMongo库连接MongoDB数据库。 步骤1:安装PyMongo库 在Python中,我们可以使用pip命令安装Py库。以下是安装PyMongo库的基…

    python 2023年5月12日
    00
  • Python检测字符串中是否包含某字符集合中的字符

    要检测Python字符串中是否包含某个字符集合中的字符,可以使用Python中的in运算符和列表功能。 以下是实现此操作的步骤: 1.创建一个字符集合列表,将要检测的字符作为列表项 2.使用Python字符串中的in运算符来检测该字符是否在列表中,如果是,程序返回True,如果不是,则返回False 下面是使用Python代码实现上述操作的示例: # 创建一…

    python 2023年5月13日
    00
  • Python还能这么玩之只用30行代码从excel提取个人值班表

    下面是详细的解释和示例: 标题 本文将会介绍如何使用Python从Excel表格中提取个人值班表,只需30行代码即可实现。本文主要分为以下几个步骤: 准备工作 导入所需库 读取Excel表格数据 处理数据 输出数据 准备工作 首先,需要准备好一个Excel表格,里面包含了个人值班表的数据。可以直接使用现成的Excel表格,也可以自己创建Excel表格并填充数…

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