]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
path.cat --> join
authorGuido van Rossum <guido@python.org>
Fri, 16 Aug 1991 13:27:58 +0000 (13:27 +0000)
committerGuido van Rossum <guido@python.org>
Fri, 16 Aug 1991 13:27:58 +0000 (13:27 +0000)
Added splitext

Lib/posixpath.py

index 0c0d09f4b2f03a1950aa9d3d89d790dc9295734d..456743cff2fc02b7981947424910ea5feb2c6d47 100644 (file)
@@ -4,19 +4,24 @@ import posix
 import stat
 
 
-# Intelligent pathname concatenation.
-# Inserts a '/' unless the first part is empty or already ends in '/'.
-# Ignores the first part altogether if the second part is absolute
+# Join two pathnames.
+# Insert a '/' unless the first part is empty or already ends in '/'.
+# Ignore the first part altogether if the second part is absolute
 # (begins with '/').
 #
-def cat(a, b):
+def join(a, b):
        if b[:1] = '/': return b
        if a = '' or a[-1:] = '/': return a + b
+       # Note: join('x', '') returns 'x/'; is this what we want?
        return a + '/' + b
 
 
+cat = join # For compatibility
+
+
 # Split a path in head (empty or ending in '/') and tail (no '/').
 # The tail will be empty if the path ends in '/'.
+# It is always true that head+tail = p.
 #
 def split(p):
        head, tail = '', ''
@@ -27,6 +32,23 @@ def split(p):
        return head, tail
 
 
+# Split a path in root and extension.
+# The extension is everything starting at the first dot in the last
+# pathname component; the root is everything before that.
+# It is always true that root+ext = p.
+#
+def splitext(p):
+       root, ext = '', ''
+       for c in p:
+               if c = '/':
+                       root, ext = root + ext + c, ''
+               elif c = '.' or ext:
+                       ext = ext + c
+               else:
+                       root = root + c
+       return root, ext
+
+
 # Return the tail (basename) part of a path.
 #
 def basename(p):
@@ -120,6 +142,6 @@ def walk(top, func, arg):
        exceptions = ('.', '..')
        for name in names:
                if name not in exceptions:
-                       name = cat(top, name)
+                       name = join(top, name)
                        if isdir(name):
                                walk(name, func, arg)