以下代码找不到文件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'):
关于python - fnmatch不适用于变量,但适用于静态字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20316300/