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 'file name invalid'
return # 避免使用加号、减号或者"."作为普通文件的第一个字符 black_list = ['+', '-', '.'] if filename[0]
in black_list: print 'file name invalid' return # 文件名避免使用下列特殊字符,包括制表符和退格符
black_list= ['/', '\t', '\b', '@', '#', '$', '%', '^', '&', '*', '(', ')', '[',
']'] intersection = set(black_list) & set(filename) if len(intersection) != 0:
print 'file name invalid' return print 'file name valid' if __name__ ==
'__main__': check("test.txt")
直接使用正则表达式:
import re fileName = "a.txt" p =
"^[^+-./\t\b@#$%*()\[\]][^/\t\b@#$%*()\[\]]{1,254}$" if not re.match(p, fileName
): print 'file name invalid'