mirror of
				https://github.com/python/cpython.git
				synced 2025-11-03 23:21:29 +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