Skip to content

Commit d6c7900

Browse files
David Wadesoumith
David Wade
authored andcommitted
Use scandir in _find_classes (#557) (#559)
* Use scandir in _find_classes (#557) * fix lint
1 parent f1b5907 commit d6c7900

File tree

1 file changed

+6
-1
lines changed

1 file changed

+6
-1
lines changed

torchvision/datasets/folder.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
import os
66
import os.path
7+
import sys
78

89

910
def has_file_allowed_extension(filename, extensions):
@@ -110,7 +111,11 @@ def _find_classes(self, dir):
110111
Ensures:
111112
No class is a subdirectory of another.
112113
"""
113-
classes = [d for d in os.listdir(dir) if os.path.isdir(os.path.join(dir, d))]
114+
if sys.version_info >= (3, 5):
115+
# Faster and available in Python 3.5 and above
116+
classes = [d.name for d in os.scandir(dir) if d.is_dir()]
117+
else:
118+
classes = [d for d in os.listdir(dir) if os.path.isdir(os.path.join(dir, d))]
114119
classes.sort()
115120
class_to_idx = {classes[i]: i for i in range(len(classes))}
116121
return classes, class_to_idx

0 commit comments

Comments
 (0)