From 24eb4bc5c9280f69b06233ef49089158e8e347a7 Mon Sep 17 00:00:00 2001 From: R David Murray Date: Thu, 23 Jun 2011 21:26:13 -0400 Subject: [PATCH] #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 522b94cee99..214e27c6012 100644 --- a/Doc/library/os.path.rst +++ b/Doc/library/os.path.rst @@ -190,10 +190,11 @@ applications should use string objects to access all files. 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)