pathlib's Path("NUL:").resolve() throws an error on windows. Is this a bug?

531 Views Asked by At

I'm looking for the equivalent windows functionality to the posix /dev/null file, and I discovered NUL:

This snippet works on a windows OS, proving that it is indeed a writable file: Path('NUL:').write_text('abcd')

However, Path('NUL:').resolve() Throws an exception OSError: [WinError 87] The parameter is incorrect: 'NUL:'

Is this a bug I should report or is this the expected behaviour? I.E. I should wrap the call to resolve() in a try...except?

If I catch all OSError types, how can I determine if it's a legitimate error or not?

E.G. Full console output:

Python 3.7.1 (v3.7.1:260ec2c36a, Oct 20 2018, 14:57:15) [MSC v.1915 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> from pathlib import Path
>>> Path('NUL:')
WindowsPath('NUL:')
>>> Path('NUL:').write_text('abcd')
4
>>> Path('NUL:').resolve()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Program Files\Python37\lib\pathlib.py", line 1134, in resolve
    s = self._flavour.resolve(self, strict=strict)
  File "C:\Program Files\Python37\lib\pathlib.py", line 192, in resolve
    s = self._ext_to_normal(_getfinalpathname(s))
OSError: [WinError 87] The parameter is incorrect: 'NUL:'
0

There are 0 best solutions below