背景
今天遇到客户提的一个需求: 将大量文件重新命名
具体specific :0001 (1).png 去掉两个00 ,去掉括号 变为011.png
技术细节:
- 去掉括号
- 去掉多余字符
- 去掉空格
分析
去掉多余字符, 这里用到的是python中的切片。需求固定为去掉2个字符 切片很贴切
知识点- 切片/slice
在Python中, 切片 (slice) 是对序列型对象 (如 list, string, tuple)的一种高级索引方法。 普通索引只取出序列中 一个下标 对应的元素,而切片取出序列中 一个范围 对应的元素,这里的范围不是狭义上的连续片段
具体格式为:strname[start : end : step]
知识点 -正则re -去掉括号与空格
re是regular expression的所写,表示正则表达式
sub是substitute的所写,表示替换;
re.sub是个正则表达式方面的函数,用来实现通过正则表达式,实现比普通字符串
的replace更加强大的替换功能;
在这里推荐使用如下正则来实现括号与空格的查找
- " \ (+| \ )+|\s+"
demo
# -*- coding: utf-8 -*-
"""
@author: dingguagua
"""
import os
import re
path = r'720x1560bootanimation\part0 改'
for file in os.listdir( path ):
print(file)
os.rename(os.path.join(path, file), os.path.join(path, re.sub(r"\(+|\)+|\s+",'',file[2:])))
总结
字符操作 可以使用python来实现 也是办公自动化的一部分