Python - 为什么fnmatch匹配子目录中的文件?

时间:2016-12-10 10:28:47

标签: python filenames

为什么这会返回True

fnmatch('/home/user/a/b', '/home/user/*')

虽然ls -d /home/user/*根本没有/home/user/a/b

1 个答案:

答案 0 :(得分:2)

fnmatch只检查名称(字符串) - 不验证是否存在真实文件。

要检查文件是否存在,您可以使用os.path.exists(path)来电。像这样:

from fnmatch import fnmatch
from os.path import exists

pattern = '/home/user/*'
name = '/home/user/a/b'

if exists(name):
    if fnmatch(name, pattern):
        print('"{}" exists and matches'.format(name))