Re: [Python-Dev] Pathlib enhancements - acceptable inputs and outputs for __fspath__ and os.fspath()
Sorry, I've forgot to use "Reply All".
On Tue, Apr 12, 2016 at 9:49 AM, INADA Naoki
IHMO it's safer to get an encoding error rather than no error when you
concatenate two byte strings encoded to two different encodings (mojibake).
print(os.fspath(obj)) will more likely do what you expect if os.fspath() always return str. I mean that it will encode your filename to the encoding of the terminal which can be different than the filesystem encoding.
If fspath() can return bytes, you should write print(os.fsdecode(os.fspath(obj))).
Why not print(obj)? str() is normal high-level API, and __fspath__ and os.fspath() should be low level API. Normal users shouldn't use __fspath__ and os.fspath(). Only library developers should use it.
-- INADA Naoki
--
INADA Naoki
participants (2)
-
INADA Naoki
-
Stephen J. Turnbull