[New-bugs-announce] [issue42872] Inconsistent exception thrown by mkdir on different OSes
Hong Xu
report at bugs.python.org
Sat Jan 9 03:15:26 EST 2021
New submission from Hong Xu <hong at topbug.net>:
Consider the following code:
-------------------------
import pathlib
def main():
pathlib.Path('tmp').touch()
pathlib.Path('tmp/tmp_sub').mkdir(parents=True)
main()
------------------------
Run the code above in an empty directory.
On Linux, it throws a `NotADirectory` exception:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "main.py", line 5, in main
pathlib.Path('tmp/tmp_sub').mkdir(parents=True)
File "/usr/lib/python3.8/pathlib.py", line 1287, in mkdir
self._accessor.mkdir(self, mode)
NotADirectoryError: [Errno 20] Not a directory: 'tmp/tmp_sub'
-----------------------------
On Windows, it throws a FileExistsError exception:
Traceback (most recent call last):
File "C:\Users\hong\anaconda3\lib\pathlib.py", line 1284, in mkdir
self._accessor.mkdir(self, mode)
FileNotFoundError: [WinError 3] The system cannot find the path specified: 'tmp\\tmp_sub'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "main.py", line 7, in <module>
main()
File "main.py", line 5, in main
pathlib.Path('tmp/tmp_sub').mkdir(parents=True)
File "C:\Users\hong\anaconda3\lib\pathlib.py", line 1288, in mkdir
self.parent.mkdir(parents=True, exist_ok=True)
File "C:\Users\hong\anaconda3\lib\pathlib.py", line 1284, in mkdir
self._accessor.mkdir(self, mode)
FileExistsError: [WinError 183] Cannot create a file when that file already exists: 'tmp
----------
components: Library (Lib), Windows
messages: 384715
nosy: Hong Xu, paul.moore, steve.dower, tim.golden, zach.ware
priority: normal
severity: normal
status: open
title: Inconsistent exception thrown by mkdir on different OSes
versions: Python 3.9
_______________________________________
Python tracker <report at bugs.python.org>
<https://bugs.python.org/issue42872>
_______________________________________
More information about the New-bugs-announce
mailing list