文件名要求
要求1
文件名 不包含 以下任何字符:
“(双引号)、*(星号)、<(小于)、>(大于)、?(问号)、\(反斜杠)、/(正斜杠)、|(竖线)、:(冒号)
要求2
文件名开头或结尾,不要有空格
要求3
文件名最长可以使用255个字符
代码
import re
# 此文件名移动到 legal_filename() 函数下面,会报错 SyntaxError: Non-UTF-8 code starting with '\xe5' in file
name = r' 哈"呵>呵呵<呵快|拉倒?减/肥 啦\就是:都快疯了哈*哈"呵>呵呵<呵快|拉倒?减/肥 啦\就是:都快疯了哈*哈"呵>呵呵<呵快|拉倒?减/肥 啦\就是:都快疯了哈*哈"呵>呵呵<呵快|拉倒?减/肥 啦\就是:都快疯了哈*哈"呵>呵呵<呵快|拉倒?减/肥 啦\就是:都快疯了哈*哈"呵>呵呵<呵快|拉倒?减/肥 啦\就是:都快疯了哈*哈"呵>呵呵<呵快|拉倒?减/肥 啦\就是:都快疯了哈*哈"呵>呵呵<呵快|拉倒?减/肥 啦\就是 快疯了哈*哈"呵>呵呵<呵快|拉倒?减/肥 啦\就是快疯了哈*哈"呵>呵呵<呵快|拉倒?减/肥 啦\就是快疯了哈*哈"呵>呵呵<呵快|拉倒?减/肥 啦\就是快疯了哈*哈"呵>呵呵<呵快|拉倒?减/肥 啦\就是快疯了哈*哈"呵>呵呵<呵快|拉倒?减/肥 啦\就是快疯了哈*哈"呵>呵呵<呵快|拉倒?减/肥 啦\就是 '
def legal_filename(name):
'''
传入文件名,将文件名转换成合法文件名
1. 将 “(双引号)、*(星号)、<(小于)、>(大于)、?(问号)、\(反斜杠)、/(正斜杠)、|(竖线)、:(冒号) 移除
2. 如果文件名超过255,就返回前255个字符
'''
name_new = name.strip()
name_new = re.sub('"|\*|<|>|\?|:|/|\||\\\\','',name_new)
# print("替换不合法符号后,文件名长度:",len(name_new))
if len(name_new) > 255:
name_new = name_new[:255]
return name_new
name_new = legal_filename(name)
print("合法文件名:",name_new)
print("合法文件名长度:",len(name_new))
执行结果:
合法文件名: 哈呵呵呵呵快拉倒减肥 啦就是都快疯了哈哈呵呵呵呵快拉倒减肥 啦就是都快疯了哈哈呵呵呵呵快拉倒减肥 啦就是都快疯了哈哈呵呵呵呵快拉倒减肥 啦就是都快疯了哈哈呵呵呵呵快拉
倒减肥 啦就是都快疯了哈哈呵呵呵呵快拉倒减肥 啦就是都快疯了哈哈呵呵呵呵快拉倒减肥 啦就是都快疯了哈哈呵呵呵呵快拉倒减肥 啦就是 快疯了哈哈呵呵呵呵快拉倒减肥 啦就是快疯了哈哈呵
呵呵呵快拉倒减肥 啦就是快疯了哈哈呵呵呵呵快拉倒减肥 啦就是快疯了哈哈呵呵呵呵快拉倒减肥 啦就是快疯了哈哈呵呵呵呵快拉倒减肥 啦就是快疯了哈
合法文件名长度: 255