From 17e2b40aae9bcc5d55da6a1d96b439684fa68a40 Mon Sep 17 00:00:00 2001 From: R David Murray Date: Thu, 23 Jun 2011 21:19:25 -0400 Subject: #9921: clarify os.path.join joining algorithm The new wording is based on the comments in the code, which match the actual behavior. --- Doc/library/os.path.rst | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/Doc/library/os.path.rst b/Doc/library/os.path.rst index 4867e8b..62bbdff 100644 --- a/Doc/library/os.path.rst +++ b/Doc/library/os.path.rst @@ -196,10 +196,11 @@ write files see :func:`open`, and for accessing the filesystem see the 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) -- cgit v0.12