python 移除文件名中不合法的符号(正则表达式实现) 作者:马育民 • 2025-01-26 12:31 • 阅读:10009 # 文件名要求 ### 要求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 ``` 原文出处:http://malaoshi.top/show_1GWTZ3Vqw2C.html