Bootstrap

Python脚本—批量删除特定格式的图片

在日常的数据处理和管理过程中,我们经常需要对大量的文件进行操作,例如批量删除特定格式的图片文件。手动删除不仅耗时,而且容易出错。本文将详细介绍如何使用Python的os库,快速、安全地删除指定格式的图片文件。

一、前言

在处理大型数据集、清理文件夹或准备训练数据时,可能需要删除某种特定格式的文件。例如,在一个包含多种图片格式的目录中,只想保留.jpg格式的图片,删除其他格式的图片。使用Python脚本可以高效地完成这一任务。

二、Python os库简介

os模块提供了非常丰富的方法用来处理文件和目录。它的功能包括:

文件和目录的创建、删除、移动、重命名
获取文件和目录的属性
遍历目录树
在本文中,我们将主要使用以下方法:

os.walk(path):生成目录树下的所有文件名,返回一个三元组 (dirpath, dirnames, filenames)。
os.remove(path):删除指定路径的文件。

三、代码实现

import os

def delete_files_by_extension(path, extension):
    """
    删除指定目录及其子目录下特定扩展名的文件。

    :param path: 目标目录路径
    :param extension: 要删除的文件扩展名(例如:'.png')
    """
    for root, dirs, files in os.walk(path):
        for name in files:
            if name.lower().endswith(extension.lower()):
                file_path = os.path.join(root, name)
                try:
                    os.remove(file_path)
                    print(f"已删除文件: {file_path}")
                except Exception as e:
                    print(f"删除文件 {file_path} 时出错:{e}")

if __name__ == "__main__":
    target_path = r'D:\shijue\animal\picture'  # 要处理的目录
    file_extension = '.png'                    # 要删除的文件扩展名
    delete_files_by_extension(target_path, file_extension)

代码解释
函数定义:delete_files_by_extension,接受两个参数,path是目标目录,extension是要删除的文件扩展名。

遍历目录:使用os.walk遍历指定目录下的所有文件和子目录。

文件筛选:使用str.endswith方法,忽略大小写,筛选出指定扩展名的文件。

删除文件:使用os.remove删除匹配的文件,并打印删除信息。

异常处理:在删除文件时捕获可能的异常,防止程序因错误而终止。

四、注意事项

谨慎操作:批量删除文件是不可逆的操作,一定要确保目标目录和文件格式正确。

备份重要文件:在执行删除操作前,建议备份重要的数据。

权限问题:确保运行脚本的用户有删除目标文件的权限。

五、总结

本文详细介绍了如何使用Python的os库批量删除特定格式的图片文件。通过对代码的讲解和优化,我们实现了一个实用的文件批量删除工具。

;