Issue #13739: It's simpler and more direct to call rewinddir() at the
beginning.
diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c
index 3c723cf..602c422 100644
--- a/Modules/posixmodule.c
+++ b/Modules/posixmodule.c
@@ -2890,6 +2890,7 @@
         close(fd);
         return posix_error();
     }
+    rewinddir(dirp);
     if ((d = PyList_New(0)) == NULL) {
         Py_BEGIN_ALLOW_THREADS
         closedir(dirp);
@@ -2906,7 +2907,6 @@
                 break;
             } else {
                 Py_BEGIN_ALLOW_THREADS
-                rewinddir(dirp);
                 closedir(dirp);
                 Py_END_ALLOW_THREADS
                 Py_DECREF(d);
@@ -2930,7 +2930,6 @@
         Py_DECREF(v);
     }
     Py_BEGIN_ALLOW_THREADS
-    rewinddir(dirp);
     closedir(dirp);
     Py_END_ALLOW_THREADS