在所有平台(包括Android,iOS等移动平台)上检查文件名是否在Python中有效的最保守的方法是什么?
实施例。
this_is_valid_name.jpg - >有效
** adad.jpg - >无效
a / ad - >无效
答案 0 :(得分:3)
检查文件是否是目标操作系统上的有效文件名的最苛刻的方法是检查正确测试的文件名列表。
valid = myfilename in ['this_is_valid_name.jpg']
在此基础上,您可以定义一个字符集,您知道每个平台上的文件名都允许这样做:
valid = set(valid_char_sequence).issuperset(myfilename)
但这还不够,就像某些操作系统have reserved filenames。
您需要排除保留名称或create an expression(regexp)与操作系统允许的文件名域匹配,针对每个目标平台测试您的文件名。强>
AFAIK,Python不提供这样的助手,因为它是Easier to Ask Forgiveness than Permission。操作系统/文件系统有很多不同的可能组合,当操作系统引发异常时,更容易做出适当的反应,而不是为所有这些系统检查安全的文件名域。