Linux 文件名合法性检测
2018-10-08 16:29
阅读数 100
<>Linux 文件名合法性检测
<>Linux 文件名合法性一般规则:
* 文件名长度不超过255
* 避免使用加号、减号或者"."作为普通文件的第一个字符
* 文件名避免使用下列特殊字符,包括制表符和退格符
<>Python 示例如下:
#!/usr/bin/env python # -*- coding:utf-8 -*- def check(filename): """ Linux
文件名合法性检测 """ # 文件名长度不能超过255 if len(filename) > 255: print &#39;file name invalid&#39;
return # 避免使用加号、减号或者"."作为普通文件的第一个字符 black_list = [&#39;+&#39;, &#39;-&#39;, &#39;.&#39;] if filename[0]
in black_list: print &#39;file name invalid&#39; return # 文件名避免使用下列特殊字符,包括制表符和退格符
black_list= [&#39;/&#39;, &#39;\t&#39;, &#39;\b&#39;, &#39;@&#39;, &#39;#&#39;, &#39;$&#39;, &#39;%&#39;, &#39;^&#39;, &#39;&&#39;, &#39;*&#39;, &#39;(&#39;, &#39;)&#39;, &#39;[&#39;,
&#39;]&#39;] intersection = set(black_list) & set(filename) if len(intersection) != 0:
print &#39;file name invalid&#39; return print &#39;file name valid&#39; if __name__ ==
&#39;__main__&#39;: check("test.txt")
直接使用正则表达式:
import re fileName = "a.txt" p =
"^[^+-./\t\b@#$%*()\[\]][^/\t\b@#$%*()\[\]]{1,254}$" if not re.match(p, fileName
): print &#39;file name invalid&#39;