mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 05:31:20 +00:00 
			
		
		
		
	
		
			
	
	
		
			27 lines
		
	
	
	
		
			590 B
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			27 lines
		
	
	
	
		
			590 B
		
	
	
	
		
			Python
		
	
	
	
	
	
|   | import fnmatch | ||
|  | import os | ||
|  | 
 | ||
|  | _debug = 0 | ||
|  | 
 | ||
|  | _prune = ['(*)'] | ||
|  | 
 | ||
|  | def find(pattern, dir = os.curdir): | ||
|  | 	list = [] | ||
|  | 	names = os.listdir(dir) | ||
|  | 	names.sort() | ||
|  | 	for name in names: | ||
|  | 		if name in (os.curdir, os.pardir): | ||
|  | 			continue | ||
|  | 		fullname = os.path.join(dir, name) | ||
|  | 		if fnmatch.fnmatch(name, pattern): | ||
|  | 			list.append(fullname) | ||
|  | 		if os.path.isdir(fullname) and not os.path.islink(fullname): | ||
|  | 			for p in _prune: | ||
|  | 				if fnmatch.fnmatch(name, p): | ||
|  | 					if _debug: print "skip", `fullname` | ||
|  | 					break | ||
|  | 			else: | ||
|  | 				if _debug: print "descend into", `fullname` | ||
|  | 				list = list + find(pattern, fullname) | ||
|  | 	return list |