I've just noticed a strange behavior when dealing with gvfs filesystems: giampaolo@ubuntu:~$ python -c "import os; print(os.path.exists('/home/giampaolo/.gvfs'))" True giampaolo@ubuntu:~$ sudo su root@ubuntu:~# python -c "import os; print(os.path.exists('/home/giampaolo/.gvfs'))" False
This is due to os.stat() which internally fails with PermissionError (EACCES). The same problem exists with os.path.isdir() which will return True as limited user and False as root. I'm not sure what's best to do here nor I know if there are other cases other than when dealing with gvfs which can produce similar behaviors but here's an idea: - make os.path.exists() return True in case of PermissionError because that's supposed to mean there's an existing path to deny access to - fix isdir(), islink(), isfile() documentation pointing out that in case of EACCES/EPERM or when dealing with exotic paths/fs it may return incorrect results. Comments? --- Giampaolo http://code.google.com/p/pyftpdlib/ http://code.google.com/p/psutil/ http://code.google.com/p/pysendfile/ _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com