win7文件命名前过滤字符标记:替换字符
win7文件和文件夹命名时,有9个字符(英文状态下)禁止使用。为避免自动命名文件时出错,替换掉英文标记字符为中文标记字符。
以下python代码就是实现这个功能的方法。
# 函数:标记字符替换。 def E_trans_to_C(string): '''# win7文件和文件夹命名时,有9个字符(英文状态下)禁止使用。 为避免自动命名文件出错,替换掉英文标记字符为中文标记字符。 :param string:替换前字符串 :return:替换后字符串 ''' # \ / : * ?“ < > | # 文件名不能包含以下英文状态的字符(9个) # , ! [ ] ( ) ' ; # 其他英文字符 E_pun = u'\\/:*?"<>|,![]()\';' # 英文状态字符标记 # 1丿:X?“《》1 # ,!【】()’; C_pun = u'1丿:X?“《》-,!【】()’;' # 对应中文状态 # 注意:句号点不能换,因为后缀有用到。 table = {ord(f): ord(t) for f, t in zip(E_pun, C_pun)} return string.translate(table) # 替换前 str1 = '啊,吧.是!的?水电费 [的]的(单独)<的>对\\方:的"的\/发d*sdfs水电|费 \'' print(str1) # 替换后 str2 = E_trans_to_C(str1) print(str2)
输出:
啊,吧.是!的?水电费 [的]的(单独)<的>对\方:的"的\/发d*sdfs水电|费 ' 啊,吧.是!的?水电费 【的】的(单独)《的》对1方:的“的1丿发dXsdfs水电-费 ’