Python基于mediainfo批量重命名图片文件

Python基于mediainfo批量重命名图片文件

1. 简介

在处理图片文件时,有时候我们需要对文件进行批量重命名。对于大量的图片文件,手动一个一个地修改文件名将是一项枯燥而繁琐的任务。幸运的是,Python提供了mediainfo库来读取图片的元信息,我们可以利用这个库来批量地重命名图片文件。

2. 安装mediainfo库

在开始之前,我们首先需要安装mediainfo库。打开终端,运行以下命令:

pip install pymediainfo

安装完成后,我们可以导入mediainfo库来使用它。

3. 批量重命名图片文件

3.1 获取文件列表

首先,我们需要获取待处理的图片文件列表。可以通过os模块来实现这一功能:

import os

def get_image_files(directory):

image_files = []

for file in os.listdir(directory):

if file.endswith(".jpg") or file.endswith(".jpeg") or file.endswith(".png"):

image_files.append(os.path.join(directory, file))

return image_files

# 示例代码,获取当前目录下的图片文件列表

image_files = get_image_files(".")

上述代码中,get_image_files()函数接收一个目录路径作为参数,遍历目录下的所有文件,并筛选出图片文件(.jpg、.jpeg、.png)将其添加到一个列表中。

3.2 重命名文件

接下来,我们将使用mediainfo库读取图片的元信息,并根据这些信息进行重命名。

请注意,我们需要确保重命名后的文件名是唯一的,否则可能会出现文件名冲突的问题。为了解决这个问题,我们可以在文件名后面添加一个递增的数字:

import mediainfo

from itertools import count

def rename_files(image_files):

counter = count(start=1)

for file in image_files:

media_info = mediainfo.MediaInfo.parse(file)

creation_time = media_info.tracks[0].recorded_date

new_file_name = creation_time.strftime("%Y%m%d_%H%M%S") + "_" + str(next(counter)) + ".jpg"

os.rename(file, new_file_name)

# 调用rename_files()函数来重命名图片文件

rename_files(image_files)

上述代码中,我们使用mediainfo库的parse()方法来解析图片文件的元信息。通过调用mediainfo.tracks[0].recorded_date获取图片的拍摄日期时间。然后我们将拍摄日期时间格式化为“年月日_时分秒”形式,并在文件名后面添加一个递增的数字。最后,使用os.rename()方法将图片文件重命名为新的文件名。

4. 总结

本文介绍了如何使用Python和mediainfo库来批量重命名图片文件。我们首先通过os模块获取待处理的图片文件列表,然后使用mediainfo库读取图片的元信息,并根据这些信息进行重命名。希望本文能对你有所帮助。

后端开发标签