use yield from
diff --git a/Lib/os.py b/Lib/os.py
index 2c7d954..ed2a31e 100644
--- a/Lib/os.py
+++ b/Lib/os.py
@@ -294,8 +294,7 @@
     for name in dirs:
         new_path = join(top, name)
         if followlinks or not islink(new_path):
-            for x in walk(new_path, topdown, onerror, followlinks):
-                yield x
+            yield from walk(new_path, topdown, onerror, followlinks)
     if not topdown:
         yield top, dirs, nondirs
 
@@ -339,8 +338,7 @@
         try:
             if (followlinks or (st.S_ISDIR(orig_st.st_mode) and
                                 path.samestat(orig_st, fstat(topfd)))):
-                for x in _fwalk(topfd, top, topdown, onerror, followlinks):
-                    yield x
+                yield from _fwalk(topfd, top, topdown, onerror, followlinks)
         finally:
             close(topfd)
 
@@ -377,8 +375,7 @@
             try:
                 if followlinks or path.samestat(orig_st, fstat(dirfd)):
                     dirpath = path.join(toppath, name)
-                    for x in _fwalk(dirfd, dirpath, topdown, onerror, followlinks):
-                        yield x
+                    yield from _fwalk(dirfd, dirpath, topdown, onerror, followlinks)
             finally:
                 close(dirfd)