mirror of
https://github.com/python/cpython.git
synced 2025-09-18 14:40:43 +00:00
Renamed to posixpath; changed def'n of split().
This commit is contained in:
parent
627efd94e9
commit
2684738d2f
1 changed files with 13 additions and 9 deletions
|
@ -1,4 +1,4 @@
|
||||||
# Module 'path' -- common operations on POSIX pathnames
|
# Module 'posixpath' -- common operations on POSIX pathnames
|
||||||
|
|
||||||
import posix
|
import posix
|
||||||
import stat
|
import stat
|
||||||
|
@ -31,20 +31,24 @@ def join(a, b):
|
||||||
return a + '/' + b
|
return a + '/' + b
|
||||||
|
|
||||||
|
|
||||||
# Split a path in head (empty or ending in '/') and tail (no '/').
|
# Split a path in head (everything up to the last '/') and tail (the
|
||||||
# The tail will be empty if the path ends in '/'.
|
# rest). If the original path ends in '/' but is not the root, this
|
||||||
# It is always true that head + tail == p; also join(head, tail) == p.
|
# '/' is stripped. After the trailing '/' is stripped, the invariant
|
||||||
# Note that because head ends in '/', if you want to find all components
|
# join(head, tail) == p holds.
|
||||||
# of a path by repeatedly getting the head, you will have to strip off
|
# The resulting head won't end in '/' unless it is the root.
|
||||||
# the trailing '/' yourself (another function should be defined to
|
|
||||||
# split an entire path into components.)
|
|
||||||
|
|
||||||
def split(p):
|
def split(p):
|
||||||
|
if p[-1:] == '/' and p <> '/'*len(p):
|
||||||
|
while p[-1] == '/':
|
||||||
|
p = p[:-1]
|
||||||
head, tail = '', ''
|
head, tail = '', ''
|
||||||
for c in p:
|
for c in p:
|
||||||
tail = tail + c
|
tail = tail + c
|
||||||
if c == '/':
|
if c == '/':
|
||||||
head, tail = head + tail, ''
|
head, tail = head + tail, ''
|
||||||
|
if head[-1:] == '/' and head <> '/'*len(head):
|
||||||
|
while head[-1] == '/':
|
||||||
|
head = head[:-1]
|
||||||
return head, tail
|
return head, tail
|
||||||
|
|
||||||
|
|
||||||
|
@ -119,7 +123,7 @@ def isdir(path):
|
||||||
return stat.S_ISDIR(st[stat.ST_MODE])
|
return stat.S_ISDIR(st[stat.ST_MODE])
|
||||||
|
|
||||||
|
|
||||||
# Is a path a regulat file?
|
# Is a path a regular file?
|
||||||
# This follows symbolic links, so both islink() and isdir() can be true
|
# This follows symbolic links, so both islink() and isdir() can be true
|
||||||
# for the same path.
|
# for the same path.
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue