From: Serhiy Storchaka Date: Wed, 7 Sep 2016 06:49:42 +0000 (+0300) Subject: Issue #25596: Falls back to listdir in glob for bytes paths on Windows. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=c98b26a6ac0e5e68dd2eb820430cc2a44b4df019;p=python Issue #25596: Falls back to listdir in glob for bytes paths on Windows. --- diff --git a/Lib/glob.py b/Lib/glob.py index 002cd92019..7c3cccb740 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