为什么这会返回True
:
fnmatch('/home/user/a/b', '/home/user/*')
虽然ls -d /home/user/*
根本没有/home/user/a/b
。
答案 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))