[docs] [issue33426] Behavior of os.path.join does not match documentation

Michael Klatt report at bugs.python.org
Fri May 4 14:39:06 EDT 2018

New submission from Michael Klatt <michael.d.klatt at gmail.com>:

The behavior of os.path.join() regarding path separators does not match the documentation. This affects Python 3.6, and goes back to at least Python 2.7.

>From the documenation: 

"The return value is the concatenation of path and any members of *paths with exactly one directory separator (os.sep) following each non-empty part except the last, meaning that the result will only end in a separator if the last part is empty."

To me, this means that join will remove extraneous separators from the path, and that the only way to produce a trailing separator is to use join "" as the final path segment.

I expect `os.path.join("/abc//", "def/")` to produce the string "/abc/def" based on the documentation, but what it actually produces is "abc//def/".

assignee: docs at python
components: Documentation, Library (Lib)
messages: 316184
nosy: Michael Klatt, docs at python
priority: normal
severity: normal
status: open
title: Behavior of os.path.join does not match documentation
type: behavior
versions: Python 2.7, Python 3.4, Python 3.5, Python 3.6

Python tracker <report at bugs.python.org>

More information about the docs mailing list