diff options
Diffstat (limited to 'Lib/glob.py')
-rw-r--r-- | Lib/glob.py | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/Lib/glob.py b/Lib/glob.py index 002cd92..7c3cccb 100644 --- a/Lib/glob.py +++ b/Lib/glob.py @@ -118,13 +118,22 @@ def _iterdir(dirname, dironly): else: dirname = os.curdir try: - with os.scandir(dirname) as it: - for entry in it: - try: - if not dironly or entry.is_dir(): - yield entry.name - except OSError: - pass + if os.name == 'nt' and isinstance(dirname, bytes): + names = os.listdir(dirname) + if dironly: + for name in names: + if os.path.isdir(os.path.join(dirname, name)): + yield name + else: + yield from names + else: + with os.scandir(dirname) as it: + for entry in it: + try: + if not dironly or entry.is_dir(): + yield entry.name + except OSError: + pass except OSError: return |