On 2018-06-02 00:14, Steven D'Aprano wrote: > Since /wibble doesn't exist, neither does /wibble/a\0b > > > py> os.path.exists("/wibble") > False > py> os.path.exists("/wibble/a\0b") > Traceback (most recent call last): > File "<stdin>", line 1, in <module> > File "/storage/torrents/torrents/python/Python-3.6.4/Lib/ > genericpath.py", line 19, in exists > os.stat(path) > ValueError: embedded null byte > > Oops.
Existence is a sketchy sort of thing. For example, sometimes the OS hides certain directory entries from some syscalls while allowing visibility from others. The following comes as on the FreeBSD system I have at hand: >>> import os >>> '.bashrc' in os.listdir() # yes, it sees hidden dot-files True >>> '.zfs' in os.listdir() # but the OS hides .zfs/ from listings False >>> os.path.exists('.zfs') # yet it exists and can cd into it True >>> os.chdir('.zfs') # and you can chdir into it >>> os.listdir() # but you can't listdir in it Traceback (most recent call last): File "<stdin>", line 1, in <module> OSError: [Errno 22] Invalid argument -- https://mail.python.org/mailman/listinfo/python-list