当前位置:首页 > Software > Python > 正文内容

(原创)使用Python自动对子文件夹中的图片文件进行重命名

chanra1n2年前 (2023-05-21)Python3732

为了解决Python深度学习的时候,经常遇到的文件名问题

import os

# 获取指定目录下的所有子文件夹
def get_subfolders(path):
    subfolders = []
    try:
        for item in os.listdir(path):
            item_path = os.path.join(path, item)
            if os.path.isdir(item_path):
                subfolders.append(item_path)
    except FileNotFoundError:
        print(f"Error: path {path} not found.")
    return subfolders

# 重命名指定目录下的所有子文件夹中的图片文件
def rename_image_files_in_subfolders(path):
    subfolders = get_subfolders(path)
    for subfolder in subfolders:
        subfolder_name = os.path.basename(subfolder)
        try:
            for index, file_name in enumerate(os.listdir(subfolder)):
                file_path = os.path.join(subfolder, file_name)
                if not os.path.isfile(file_path):
                    continue
                file_ext = os.path.splitext(file_name)[1].lower()
                if file_ext not in ['.jpg', '.jpeg', '.png', '.bmp', '.gif','.jpe']:  # 仅处理常见的图片格式
                    continue
                new_file_name = f"{subfolder_name}_{index+1}{file_ext}"
                new_file_path = os.path.join(subfolder, new_file_name)
                os.rename(file_path, new_file_path)
        except PermissionError:
            print(f"Error: failed to rename files in subfolder {subfolder}.")
            continue

# 测试
if __name__ == '__main__':
    path = '.'
    rename_image_files_in_subfolders(path)

这个程序中,get_subfolders函数和rename_image_files_in_subfolders函数与之前的实现类似。但是,为了处理不仅是jpg格式的图片文件,我对rename_files_in_subfolders函数进行了修改。首先,对于每个文件,使用os.path.splitext函数获取文件名和文件扩展名,然后将扩展名转化为小写格式。接着,判断文件扩展名是否在常见的图片格式中,如果不在则跳过该文件。最后,将新的文件名设置为"{子文件夹名称}_{序号}{文件扩展名}"的格式,将原文件名修改为新文件名。

由于这个程序需要处理多种文件格式,因此可能会比之前的实现慢一些。如果程序的性能成为问题,可以考虑使用多线程或异步IO等技术来加速处理过程。

扫描二维码推送至手机访问。

版权声明:本文由我的FPGA发布,如需转载请注明出处。

本文链接:https://myfpga.cn/index.php/post/307.html

分享给朋友:

“(原创)使用Python自动对子文件夹中的图片文件进行重命名” 的相关文章

一文快速搞定基本Python

一文快速搞定基本Python

本文适宜有熟练其他高级语言编程基础的同行参阅,或复习用,转载请保留作者信息 Myfpga.cn Chanra1n输入输出#input输入命令,中间的即提示语,左面的a为输入的值存到哪里 a=input("请输入a的值:") #print()可以直接print("He...

Python自动清理错误图片,深度学习训练数据集准备

Python自动清理错误图片,深度学习训练数据集准备

使用python运行from PIL import Image from pathlib import Path import os   path = r'.'  ...

(原创)使用Python对任意网站图片进行爬取,仅用于学习

(原创)使用Python对任意网站图片进行爬取,仅用于学习

import os import time import argparse import requests import re import io from urllib.parse import ...

(原创)使用Python递归获取网页内的所有URL,并进行清洗

(原创)使用Python递归获取网页内的所有URL,并进行清洗

import argparse import time from urllib.parse import urljoin, urlparse from selenium import webdriver...

(原创)使用Python提取ISE工程的RTL代码

(原创)使用Python提取ISE工程的RTL代码

在工程文件夹下运行Python程序即可 #Author       : / #Description  : 从ISE的项目文件夹中提取rtl文件,用于LEDA调试 #Time ...

(原创)使用FFmpeg截取多个视频中的图片,创建训练集

(原创)使用FFmpeg截取多个视频中的图片,创建训练集

代码使用 Python 中的 subprocess 模块和 FFmpeg、FFprobe 工具来从视频文件中截取多个截图,并使用 PIL 库来检查截图文件是否损坏,如果损坏了就不保存该文件。下面是代码的具体流程:首先读取配置文件或命令行参数来指定截图数量、截图大小、截图时间间隔和截图质量等...