Issue #25596: Falls back to listdir in glob for bytes paths on Windows.

This commit is contained in:
Serhiy Storchaka 2016-09-07 09:49:42 +03:00
parent 1de1a6a2dc
commit c98b26a6ac
1 changed files with 16 additions and 7 deletions

View File

@ -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