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水电-费 ’
浙公网安备 33010602011771号