Commit 185e1415 authored by Zachary Ware's avatar Zachary Ware

Issue #15414: Clean and correct the os.path.join docs.

In particular, correctly describe the behavior of ntpath.join.

Based on a patch by Dave Sawyer.
parent ec871ef1
...@@ -197,17 +197,22 @@ the :mod:`glob` module.) ...@@ -197,17 +197,22 @@ the :mod:`glob` module.)
device --- this should detect mount points for all Unix and POSIX variants. device --- this should detect mount points for all Unix and POSIX variants.
.. function:: join(path1[, path2[, ...]]) .. function:: join(path, *paths)
Join one or more path components intelligently. If any component is an absolute Join one or more path components intelligently. The return value is the
path, all previous components (on Windows, including the previous drive letter, concatenation of *path* and any members of *\*paths* with exactly one
if there was one) are thrown away, and joining continues. The return value is directory separator (``os.sep``) following each non-empty part except the
the concatenation of *path1*, and optionally *path2*, etc., with exactly one last, meaning that the result will only end in a separator if the last
directory separator (``os.sep``) following each non-empty part except the last. part is empty. If a component is an absolute path, all previous
(This means that an empty last part will result in a path that ends with a components are thrown away and joining continues from the absolute path
separator.) Note that on Windows, since there is a current directory for component.
each drive, ``os.path.join("c:", "foo")`` represents a path relative to the
current directory on drive :file:`C:` (:file:`c:foo`), not :file:`c:\\foo`. On Windows, the drive letter is not reset when an absolute path component
(e.g., ``r'\foo'``) is encountered. If a component contains a drive
letter, all previous components are thrown away and the drive letter is
reset. Note that since there is a current directory for each drive,
``os.path.join("c:", "foo")`` represents a path relative to the current
directory on drive :file:`C:` (:file:`c:foo`), not :file:`c:\\foo`.
.. function:: normcase(path) .. function:: normcase(path)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment