mirror of
https://github.com/python/cpython.git
synced 2025-11-25 04:34:37 +00:00
Initial revision
This commit is contained in:
parent
b5e05e95c3
commit
762c39e9d2
2 changed files with 129 additions and 0 deletions
35
Lib/fnmatch.py
Normal file
35
Lib/fnmatch.py
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
# module 'fnmatch' -- filename matching with shell patterns
|
||||
|
||||
# XXX [] patterns are not supported (but recognized)
|
||||
|
||||
def fnmatch(name, pat):
|
||||
if '*' in pat or '?' in pat or '[' in pat:
|
||||
return fnmatch1(name, pat)
|
||||
return name = pat
|
||||
|
||||
def fnmatch1(name, pat):
|
||||
for i in range(len(pat)):
|
||||
c = pat[i]
|
||||
if c = '*':
|
||||
restpat = pat[i+1:]
|
||||
if '*' in restpat or '?' in restpat or '[' in restpat:
|
||||
for i in range(i, len(name)):
|
||||
if fnmatch1(name[i:], restpat):
|
||||
return 1
|
||||
return 0
|
||||
else:
|
||||
return name[len(name)-len(restpat):] = restpat
|
||||
elif c = '?':
|
||||
if len(name) <= i : return 0
|
||||
elif c = '[':
|
||||
return 0 # XXX
|
||||
else:
|
||||
if name[i:i+1] <> c:
|
||||
return 0
|
||||
return 1
|
||||
|
||||
def fnmatchlist(names, pat):
|
||||
res = []
|
||||
for name in names:
|
||||
if fnmatch(name, pat): res.append(name)
|
||||
return res
|
||||
Loading…
Add table
Add a link
Reference in a new issue