Chris Angelico <ros...@gmail.com>: > Possibly more confusing, though, is this: > >>>> os.path.exists(1) > True >>>> os.path.exists(2) > True >>>> os.path.exists(3) > False > > I think it's testing that the file descriptors exist, because > os.path.exists is defined in terms of os.stat, which can stat a path > or an FD. So os.path.exists(fd) is True if that fd is open, and False > if it isn't. But os.path.exists is not documented as accepting FDs. > Accident of implementation or undocumented feature? Or maybe > accidental feature?
What's more: >>> os.path.exists(-100) False >>> os.path.exists(-1000000000000) Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/lib64/python3.6/genericpath.py", line 19, in exists os.stat(path) OverflowError: fd is less than minimum One could argue -100 is less than minimum... The common denominator is that "\0" and -1000000000000 are caught by Python's standard library while "" and -100 are caught by the OS. Marko -- https://mail.python.org/mailman/listinfo/python-list