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水电-费 ’

  

posted @ 2021-04-28 18:37  安迪9468  阅读(290)  评论(0编辑  收藏  举报