windows中,非法文件字符有以下
\/:*?"<>|
对应的合法全角字符为
\/:*?"<>|
替换后,就能保留原意,不需要损失信息了
简易python代码如下
tr_table = str.maketrans('\/:*?"<>|', '\/:*?"<>|')
# 不可作为文件名
bad_filename = 'asd?<>.jpg'
# 可以作为文件名,同时意义和原名不变
good_filename = bad_filename.translate(tr_table)
print(f'{bad_filename} -> {good_filename}')