replace方法
将指定子串都替换为另一个字符串,并返回替换后的结果。
translate方法
方法translate与replace一样替换字符串的特定部分,但不同的是它只能进行单字符替换。这个方法的优势在于能够同时替换多个字符,因此效率比replace高。这个方法的用途很多(如替换换行符或其他随平台而异的特殊字符),但这里只介绍一个比较简单(也有点傻)的示例。假设你要将一段英语文本转换为带有德国口音的版本,为此必须将字符c和s分别替换为k和z。然而,使用translate前必须创建一个转换表。这个转换表指出了不同Unicode码点之间的转换关系。要创建转换表,可对字符串类型str调用方法maketrans,这个方法接受两个参数:两个长度相同的字符串,它们指定要将第一个字符串中的每个字符都替换为第二个字符串中的相应字符。就这个简单的示例而言,代码类似于下面这样:
使用translate方法,对文件名中的中文字符替换成自定义的字符,将甲-->a,乙-->b,丙-->c,丁-->d,正-->a
1 def replace_filename(dir_path):
2 """
3 将文件夹下,文件中文名字替换为英文,甲乙丙丁正->abcda
4 :param dir_path:
5 :return:
6 """
7 files = os.listdir(dir_path)
8 table = str.maketrans('甲乙丙丁正','abcda') # 转换表,单个字符的替换
9
10 # print(files) files包含文件,文件夹
11 for file in files:
12 if os.path.isdir(file):
13 continue
14 oldname =os.path.join(dir_path,file)
15 new_file = file.translate(table)
16 newname = os.path.join(dir_path,new_file)
17 os.rename(oldname,newname) # 有移动重命名功能
参考书籍:
python 基础教程