首页 > 其他分享 >(打标签)增删文件前后缀,并修改文件名为图片格式

(打标签)增删文件前后缀,并修改文件名为图片格式

时间:2023-10-29 21:12:04浏览次数:37  
标签:name extension 后缀 图片格式 action prefix 增删 path suffix

import os
from PIL import Image


def process_images(root_dir, prefix_action, prefix, suffix_action, suffix):
for foldername, subfolders, filenames in os.walk(root_dir):
for filename in filenames:
file_path = os.path.join(foldername, filename)
if filename.lower().endswith(('.png', '.jpg', '.jpeg', '.bmp', '.gif')):
img = Image.open(file_path)

if img.mode == "RGBA":
img = img.convert("RGB")

folder_path, old_name = os.path.split(file_path)
name_without_extension = os.path.splitext(old_name)[0]

# 处理前缀
if prefix_action == "+":
name_without_extension = prefix + name_without_extension
elif prefix_action == "-":
name_without_extension = name_without_extension.replace(prefix, "")

# 处理后缀
if suffix_action == "+":
name_without_extension += suffix
elif suffix_action == "-":
name_without_extension = name_without_extension.replace(suffix, "")

new_name = name_without_extension + ".jpg"
new_file_path = os.path.join(folder_path, new_name)
counter = 1

while os.path.exists(new_file_path):
new_name = name_without_extension + "_" + str(counter) + ".jpg"
new_file_path = os.path.join(folder_path, new_name)
counter += 1

img.save(new_file_path, "JPEG")
os.remove(file_path)


if __name__ == "__main__":
address = input("请输入地址:")

prefix_action = input("请选择增加前缀(+), 还是删除前缀(-) 或 不做操作(直接按Enter):").strip() or None
prefix = input("请输入前缀:") if prefix_action else ""

suffix_action = input("请选择增加后缀(+), 还是删除后缀(-) 或 不做操作(直接按Enter):").strip() or None
suffix = input("请输入后缀:") if suffix_action else ""

process_images(address, prefix_action, prefix, suffix_action, suffix)
print("处理完成!")

标签:name,extension,后缀,图片格式,action,prefix,增删,path,suffix
From: https://www.cnblogs.com/zly324/p/17796464.html

相关文章

  • Mybatis,增删改查CRUD
    在第一个Mybatis程序的基础上,继续实现功能一、实现根据id查询用户功能1、首先,在UserMapper里定义一个方法  因为要根据id查询所以要传入一个id2、在xml文件中实现,这里多了一个属性    parameterType  用来写传入的数据类型 3、测试一下,这里我们查询建了一个测......
  • Apple开发_字符串后缀如果包含有数字,提取出字符串后缀全部的数字
    NSString分类@implementationNSString(GC)-(NSString*)suffix_Num{//匹配字符串末尾的数字NSString*pattern=@"\\d+$";NSError*error=nil;NSRegularExpression*regex=[NSRegularExpressionregularExpressionWithPattern:patternoptions......
  • 这些文件都是7-Zip自解压缩文件(SFX)的默认模板。每个文件名后缀代表不同类型的操作系统
    这些文件都是7-Zip自解压缩文件(SFX)的默认模板。每个文件名后缀代表不同类型的操作系统和处理器架构。Default.SFX:这是用于32位Windows操作系统的默认SFX模板,其中包含了7-Zip解压程序。Default64.SFX:这是用于64位Windows操作系统的默认SFX模板,其中包含了7-Zip解压程序。WinCon.S......
  • 数据增删改查
    1、外键主键:PRIMARYKEY(列名)唯⼀性,不能重复。外键的作⽤是要和另⼀个表的主键保持数据⼀致性,完整性。--创建一个班级表createtableifnotexistsgrade(idintprimarykey,gradeNamevarchar(20));--创建一个学生表createtableifnotexistsstude......
  • C#增删改查代码
    //增加DataBasedataBase=newDataBase();SqlConnectionsqlConnection=dataBase.getConn();//打开连接sqlConnection.Open();//定义sql语句stringsql="insertintotest1007.g......
  • 列表的增删改查(range用法:)
    列表的添加.append()lst=[]#向列表末尾添加内容#append()追加lst.append("张绍刚")lst.append("赵本山")lst.append("张无忌")print(lst)#insert()在指定位置插入,原先该位置以后的所有元素都需要往后挪n个位置,因此插入的效率极低。lst.insert(0,"赵敏")#在......
  • 第 367 场周赛(双指针,集合(upper_bound&lower_bound),前后缀分解)
    2903.找出满足差值条件的下标I2905.找出满足差值条件的下标II这两个题只有数据范围上面的差距 这个题我们大体思路是维护双指针,枚举数字,维护集合。这是灵神视频的代码classSolution:deffindIndices(self,nums:List[int],indexDifference:int,valueDiffere......
  • Vue3 element-plus el-cascader后缀图标更改(svg)
    概述今天用element-plus写通用表单的时候,发现了它的el-cascader组件竟然不支持改后缀图标,主要它的普通下拉el-select组件都能随便改suffix-icon,级联的下拉就不支持了,令人疑惑。    然后,找了好多办法,包括直接取原生的Component改它的arrowDown属性,发现也不支持了。没......
  • 中缀表达式转前后缀表达式
    将中缀表达式a/(b+c*d)-e/f转换为后缀表达式的步骤如下:1.创建一个空栈和一个空字符串,用于存储结果。2.从左到右遍历中缀表达式的每个字符:  -如果是操作数(字母或数字),直接添加到结果字符串中。  -如果是操作符:    -如果栈为空,或者栈顶操作符为左括号"(",则将当前操作......
  • 北林OJ基于栈的后缀表达式求值
    思路1:(较易理解)#include<iostream>#include<iomanip>usingnamespacestd;#defineOK1#defineERROR0#defineMaxSize100typedefdoubleElemType;//定义栈_顺序栈structStack{ ElemType*top; ElemType*base; intstacksize;};intIsFull(Stacks);i......