from string import maketrans
用 translate 方法就可以:
name.translate(None, "|\\?*<\":>+[]/‘")
或者替换为下划线:
from string import maketrans
table = maketrans("|\\?*<\":>+[]/‘", ‘_‘* 13)
name = name.translate(table)
如果 name
是 unicode
则 table
的形式略有区别:
table = dict( (ord(c), ord(‘_‘)), for c in "|\\?*<\":>+[]/‘" )
如果要删掉字符则把 ord(‘_‘)
改为 None
。
另外并非合法字符构成的就是合法文件名,比如 .
、nul
之类也不是合法的文件名,路径过长也不合法。
参考与网上搜索
时间: 2024-11-13 09:44:08