[Python-checkins] cpython (3.2): #9921: clarify os.path.join joining algorithm

r.david.murray python-checkins at python.org
Fri Jun 24 03:27:51 CEST 2011


http://hg.python.org/cpython/rev/f5f5b715be7e
changeset:   70938:f5f5b715be7e
branch:      3.2
parent:      70935:e5183f16c49d
user:        R David Murray <rdmurray at bitdance.com>
date:        Thu Jun 23 21:26:13 2011 -0400
summary:
  #9921: clarify os.path.join joining algorithm

The new wording is based on the comments in the code, which
match the actual behavior.

files:
  Doc/library/os.path.rst |  9 +++++----
  1 files changed, 5 insertions(+), 4 deletions(-)


diff --git a/Doc/library/os.path.rst b/Doc/library/os.path.rst
--- a/Doc/library/os.path.rst
+++ b/Doc/library/os.path.rst
@@ -190,10 +190,11 @@
    path, all previous components (on Windows, including the previous drive letter,
    if there was one) are thrown away, and joining continues.  The return value is
    the concatenation of *path1*, and optionally *path2*, etc., with exactly one
-   directory separator (``os.sep``) inserted between components, unless *path2* is
-   empty.  Note that on Windows, 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`.
+   directory separator (``os.sep``) following each non-empty part except the last.
+   (This means that an empty last part will result in a path that ends with a
+   separator.)  Note that on Windows, 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)

-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list