This issue tracker has been migrated to GitHub ,
and is currently read-only.
For more information,
see the GitHub FAQs in the Python's Developer Guide.
Created on 2016年05月08日 11:15 by davide.rizzo, last changed 2022年04月11日 14:58 by admin. This issue is now closed.
| Messages (2) | |||
|---|---|---|---|
| msg265128 - (view) | Author: Davide Rizzo (davide.rizzo) * | Date: 2016年05月08日 11:15 | |
pathlib doesn't provide an exact replacement for os.path.realpath().
Path.resolve() is the closest equivalent, but differs in behavior in one case: when the path does not exist.
>>> os.path.realpath('/foo')
'/foo'
>>> Path('/foo').resolve()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/Cellar/python3/3.5.1/Frameworks/Python.framework/Versions/3.5/lib/python3.5/pathlib.py", line 1094, in resolve
s = self._flavour.resolve(self)
File "/usr/local/Cellar/python3/3.5.1/Frameworks/Python.framework/Versions/3.5/lib/python3.5/pathlib.py", line 330, in resolve
return _resolve(base, str(path)) or sep
File "/usr/local/Cellar/python3/3.5.1/Frameworks/Python.framework/Versions/3.5/lib/python3.5/pathlib.py", line 315, in _resolve
target = accessor.readlink(newpath)
File "/usr/local/Cellar/python3/3.5.1/Frameworks/Python.framework/Versions/3.5/lib/python3.5/pathlib.py", line 422, in readlink
return os.readlink(path)
FileNotFoundError: [Errno 2] No such file or directory: '/foo'
This impairs pathlib usefulness to sanitize user input when I am about to create a file or a directory. The file does not exist yet, and pathlib doesn't provide an easy mean to validate whether the provided input is safe.
|
|||
| msg265135 - (view) | Author: Serhiy Storchaka (serhiy.storchaka) * (Python committer) | Date: 2016年05月08日 12:37 | |
This is a duplicate of issue19717. |
|||
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2022年04月11日 14:58:30 | admin | set | github: 71163 |
| 2016年05月08日 16:41:59 | brett.cannon | set | nosy:
+ pitrou |
| 2016年05月08日 12:37:54 | serhiy.storchaka | set | status: open -> closed superseder: resolve() fails when the path doesn't exist nosy: + serhiy.storchaka messages: + msg265135 resolution: duplicate stage: resolved |
| 2016年05月08日 11:18:26 | davide.rizzo | set | type: enhancement |
| 2016年05月08日 11:15:48 | davide.rizzo | create | |