gpt4 book ai didi

python - fnmatch 不适用于变量,但适用于静态字符串

转载 作者:太空宇宙 更新时间:2023-11-04 11:17:12 25 4
gpt4 key购买 nike

以下代码未找到文件 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com