Python fnmatch不适用于变量,但适用于静态字符串
以下代码找不到文件Python fnmatch不适用于变量,但适用于静态字符串,python,regex,linux,python-2.7,Python,Regex,Linux,Python 2.7,以下代码找不到文件patterns中定义的任何模式 #!/usr/bin/env python import os import fnmatch patternFile = open('patterns', 'r') patterns = patternFile.readlines() for filename in os.listdir('.'): for pattern in patterns: if fnmatch.fnmatch(filename, patte
patterns
中定义的任何模式
#!/usr/bin/env python
import os
import fnmatch
patternFile = open('patterns', 'r')
patterns = patternFile.readlines()
for filename in os.listdir('.'):
for pattern in patterns:
if fnmatch.fnmatch(filename, pattern):
print "FOUND!"
我的模式
文件看起来像
*test
foo
下面使用静态模式字符串修改的代码可以正常工作。正如预期的那样,可以找到名为foofile
的文件
patternFile = open('patterns', 'r')
patterns = patternFile.readlines()
for filename in os.listdir('.'):
if fnmatch.fnmatch(filename, '*test'):
print "FOUND!"
有人知道这个问题吗?
readlines
包括换行符\n
在每行末尾,您需要执行以下操作:
if fnmatch.fnmatch(filename, pattern.strip('\n\r'):