def iglob(pathname): """Return an iterator which yields the paths matching a pathname pattern. The pattern may contain simple shell-style wildcards a la fnmatch. """ if not has_magic(pathname): if file.lexists(pathname): yield pathname return dirname, basename = os.path.split(pathname) if not dirname: for name in glob1(os.curdir, basename): yield name return if has_magic(dirname): dirs = iglob(dirname) else: dirs = [dirname] if has_magic(basename): glob_in_dir = glob1 else: glob_in_dir = glob0 for dirname in dirs: for name in glob_in_dir(dirname, basename): yield os.path.join(dirname, name)
def glob0(dirname, basename): if basename == '': if file.isdir(dirname): return [basename] else: if file.lexists(os.path.join(dirname, basename)): return [basename] return []
def glob0(dirname, basename): if basename == '': # repr(os.path.split()) returns an empty basename for paths ending with a # directory separator. 'q*x/' should match only directories. if file.isdir(dirname): return [basename] else: if file.lexists(os.path.join(dirname, basename)): return [basename] return []
def iglob(pathname): if not has_magic(pathname): if file.lexists(pathname): yield pathname return dirname, basename = os.path.split(pathname) if not dirname: for name in glob1(os.curdir, basename): yield name return if has_magic(dirname): dirs = iglob(dirname) else: dirs = [ dirname] if has_magic(basename): glob_in_dir = glob1 else: glob_in_dir = glob0 for dirname in dirs: for name in glob_in_dir(dirname, basename): yield os.path.join(dirname, name)