cpython: 48e573e0a610 (original) (raw)
Mercurial > cpython
changeset 103211:48e573e0a610
Issue #25596: Falls back to listdir in glob for bytes paths on Windows. [#25596]
Serhiy Storchaka storchaka@gmail.com | |
---|---|
date | Wed, 07 Sep 2016 09:49:42 +0300 |
parents | 1705cde6266d |
children | e62ac2ed0fc4 |
files | Lib/glob.py |
diffstat | 1 files changed, 16 insertions(+), 7 deletions(-)[+] [-] Lib/glob.py 23 |
line wrap: on
line diff
--- 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:[](#l1.7)
for entry in it:[](#l1.8)
try:[](#l1.9)
if not dironly or entry.is_dir():[](#l1.10)
yield entry.name[](#l1.11)
except OSError:[](#l1.12)
pass[](#l1.13)
if os.name == 'nt' and isinstance(dirname, bytes):[](#l1.14)
names = os.listdir(dirname)[](#l1.15)
if dironly:[](#l1.16)
for name in names:[](#l1.17)
if os.path.isdir(os.path.join(dirname, name)):[](#l1.18)
yield name[](#l1.19)
else:[](#l1.20)
yield from names[](#l1.21)
else:[](#l1.22)
with os.scandir(dirname) as it:[](#l1.23)
for entry in it:[](#l1.24)
try:[](#l1.25)
if not dironly or entry.is_dir():[](#l1.26)
yield entry.name[](#l1.27)
except OSError:[](#l1.28)
except OSError: returnpass[](#l1.29)