在Windows下检查给定字符串是否是合法/有效的文件名,可以通过以下方法实现:
isfile()
函数:import os
def is_valid_filename(filename):
if os.path.isfile(filename):
return True
else:
return False
import re
def is_valid_filename(filename):
# 匹配Windows文件名的正则表达式
pattern = r'^(?:(?:[^<>:"/\\|?*\x00-\x1F]+[\x00-\x1F]*)+)$'
if re.match(pattern, filename):
return True
else:
return False
GetFileAttributes()
:import ctypes
def is_valid_filename(filename):
GetFileAttributes = ctypes.windll.kernel32.GetFileAttributesW
GetFileAttributes.argtypes = [ctypes.c_wchar_p]
GetFileAttributes.restype = ctypes.c_uint32
FILE_ATTRIBUTE_NORMAL = 0x80
FILE_ATTRIBUTE_DIRECTORY = 0x10
if GetFileAttributes(filename) != -1:
return True
else:
return False
以上方法都可以用来检查给定字符串是否是合法/有效的文件名。需要注意的是,不同的方法可能存在一定的局限性,例如正则表达式方法可能无法检查到某些特殊字符,而Windows API函数方法可能需要特定的环境支持。
领取专属 10元无门槛券
手把手带您无忧上云