如何在Python中通用检查文件名有效性?含多场景验证需求
Python文件名有效性校验的痛点与需求
在Python中创建文件时,常因文件名相关的问题失败,常见原因包括:
- 文件路径过长
- 加密文件系统下文件名过长:
在加密文件系统中,文件名最大长度为143字节。在Python中可通过
len(filename.encode())获取文件名的字节长度,以此判断其是否足够短。——Marvo,2018年3月9日12:45 - 文件名包含易引发文件系统问题、不被推荐或跨文件系统兼容问题的字符,例如:
\n!@#$%^&*()[]{};:,/<>?\|~=+` - 其他未列举的场景
目前需要一个便捷函数,能预先告知以下信息:
a) 当前文件名是否可用
b) 该文件名是否可能在其他文件系统中引发问题
c) 若不可用,具体失败原因是什么?
现有的一些校验方案(比如常见的“不创建文件直接验证路径有效性”“校验文件名合法性”的实现),无法满足上述全部需求——甚至连加密文件夹/驱动器的143字节文件名限制都无法识别。
内容的提问来源于stack exchange,提问作者user7468395
相关产品推荐
相关产品推荐

