我需要在搜索目录时检查文件扩展名。
如果使用re进行匹配工作。那些'。'被解释为正则表达式。'
我的代码:
extension = ['.c','.h']
path = 'foo\bar\foobar.c'
def skipCheck(path):
global extension
skip = True
for i in extension :
if(re.search(i,path)):
skip = False
return skip
我知道我可以使用反斜杠来做到这一点。
extension = ['\.c','\.h']
但它使用和配置并不容易。我想保留['.c','。h']输入样式。
有没有办法将它们转换并保存到re.search的另一个原始字符串列表中。
答案 0 :(得分:6)
不要使用regexen; Python已经有os.path.splitext
。
def skip_check(path):
return os.path.splitext(path)[1] in extensions
如果你必须使用正则表达式,你可以调用re.escape
来逃避所有正则表达式元字符。
不要声明extension
全球;你没有分配它,所以你不需要。此外,您应该将其称为extensions
。