以下代码未找到文件 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!"
我的 pattern 文件看起来像
*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'):
