Issue 31871: Support for file descriptor params in os.path (original) (raw)

Issue31871

Created on 2017-10-26 05:33 by Mateusz Kurek, last changed 2022-04-11 14:58 by admin.

Messages (3)
msg305023 - (view) Author: Mateusz Kurek (Mateusz Kurek) Date: 2017-10-26 05:33
Since Python 3.3, some os module functions, like os.stat (https://docs.python.org/3/library/os.html#os.stat), support passing file descriptor instead of a path. os.path functions, on the other hand (like os.path.exists - https://docs.python.org/3/library/os.path.html#os.path.exists - or os.path.samefile - https://docs.python.org/3/library/os.path.html#os.path.samefile) mention using os.stat underneath, but according to documentation, does not support passing file descriptor instead of a path (at least it's not mentioned in the docs that this feature is supported). Is this intentional (os.path functions should not take file descriptor params) or this feature is officialy supported, but it's ommited in the docs?
msg305129 - (view) Author: Éric Araujo (eric.araujo) * (Python committer) Date: 2017-10-27 17:52
> support passing file descriptor instead of a path. os.path functions Are you sure about that? The docs for os.stat show the dir_fd parameter, used to avoid directory renaming issues or attacks, but it doesn’t say that the *path* argument can be an int file descriptor instead of a str file path.
msg305152 - (view) Author: Serhiy Storchaka (serhiy.storchaka) * (Python committer) Date: 2017-10-28 09:49
Éric, see https://docs.python.org/3/library/os.html#files-and-directories. Yes, now some os.path functions can accept a file descriptor as a path. I don't think this is intentional. And this may not work on all platforms. >>> os.path.isdir(1) False >>> os.path.islink(1) Traceback (most recent call last): File "", line 1, in File "/home/serhiy/py/cpython/Lib/posixpath.py", line 169, in islink st = os.lstat(path) TypeError: lstat: path should be string, bytes or os.PathLike, not int
History
Date User Action Args
2022-04-11 14:58:53 admin set github: 76052
2017-10-28 09:49:54 serhiy.storchaka set nosy: + serhiy.storchakamessages: +
2017-10-27 17:52:41 eric.araujo set nosy: + eric.araujomessages: +
2017-10-26 05:33:13 Mateusz Kurek create