批量处理文件名前缀后缀

准备工作

使用python编程语言。
使用subtextline编写并运行python。

需求

文件名有相同命名的前缀后缀或中间字符,需要去除相应的字符。
我是从公司内网导出数据,经去水印处理,每个文件多了(无水印)的前缀,需要去掉(无水印)5个字符,我的文件层级为A文件,A文件夹下多个B文件,B文件下多个日期文件,日期文件夹下的多个图片需要去除相同前缀。

代码

import os
path = r'C:\Users\Desktop\海洋数值预报解释应用产品\中尺度涡'

for dirname in os.listdir(path):
	print(dirname)
	fullpath = os.path.join(path,dirname)
	if dirname[-2:] == 'py':
		continue  #过滤掉改名的.py文件

	for file in os.listdir(fullpath):
		#print(file)
		name = file.replace('(无水印)',''); #修改前缀
		print("new_name name is %s" %(name))
		print(os.path.abspath(os.curdir))
		os.chdir(fullpath)
		os.rename(file,name)

注意:python代码以空格作为语法标准,同一语法放在同一缩进格中。

如果是删除固定位置的字符,可使用下列语句替换:

name = file[5:20]  #选择名字中需要保留的部分

学习相关网站

sublimetext下载:sublimetext
python安装包下载:winpython
python基本包下载:pythonlibs
python文件操作基本命令: 菜鸟

以下是使用Python class实现批量修改文件名的完整代码: ```python import os class BatchRename: def __init__(self, path, prefix="", suffix="", replace_dict=None): self.path = path self.prefix = prefix self.suffix = suffix self.replace_dict = replace_dict def rename(self): for filename in os.listdir(self.path): # 获取文件的完整路径 file_path = os.path.join(self.path, filename) # 判断是否是文件,不是文件则跳过 if not os.path.isfile(file_path): continue # 替换文件名中的字符串 if self.replace_dict: for key, value in self.replace_dict.items(): filename = filename.replace(key, value) # 添加前缀后缀 filename = self.prefix + filename + self.suffix # 获取文件的后缀名 ext = os.path.splitext(filename)[-1] # 生成新的文件名 new_filename = str(hash(filename)) + ext # 重命名文件 os.rename(file_path, os.path.join(self.path, new_filename)) if __name__ == '__main__': # 设置路径及参数 path = "/path/to/folder" prefix = "prefix_" suffix = "_suffix" replace_dict = {"old_str": "new_str"} # 实例化BatchRename类并调用rename方法 renamer = BatchRename(path, prefix, suffix, replace_dict) renamer.rename() ``` 以上代码中,BatchRename类的构造函数接收四个参数,分别是文件夹的路径(path)、文件名前缀(prefix)、文件名后缀(suffix)和需要替换的字符串字典(replace_dict)。rename方法遍历文件夹中的所有文件,根据参数进行文件名的修改。其中,使用了hash函数生成新的文件名,以避免重名问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值