Issue 34807: pathlib.[r]glob fails when the toplevel directory is not readable, whereas glob.glob "succeeds" (original) (raw)

After

$ mkdir -p foo/bar && chmod 000 foo

one gets

In [1]: glob.glob("foo/bar")
Out[1]: []

but

In  [2]: list(Path("foo/bar").glob("*"))

gives a PermissionError.

I'm not arguing that pathlib should reproduce glob's behavior (in fact I think raising an exception is better in this case), but this could be better documented (os.walk does indicate that "By default, errors from the scandir() call are ignored." whereas I don't think either glob or pathlib docs mention this point at all).

Compare with https://bugs.python.org/issue24120, which relates to unreadable directories found inside the toplevel directory.