def isabs(s):
"""Test whether a path is absolute"""
- return s[:1] == '/'
+ return s.startswith('/')
# Join pathnames.
"""Join two or more pathname components, inserting '/' as needed"""
path = a
for b in p:
- if b[:1] == '/':
+ if b.startswith('/'):
path = b
- elif path == '' or path[-1:] == '/':
- path = path + b
+ elif path == '' or path.endswith('/'):
+ path += b
else:
- path = path + '/' + b
+ path += '/' + b
return path
i = p.rfind('/') + 1
head, tail = p[:i], p[i:]
if head and head != '/'*len(head):
- while head[-1] == '/':
- head = head[:-1]
+ head = head.rstrip('/')
return head, tail
for i in range(len(prefix)):
if prefix[:i+1] != item[:i+1]:
prefix = prefix[:i]
- if i == 0: return ''
+ if i == 0:
+ return ''
break
return prefix
def expanduser(path):
"""Expand ~ and ~user constructions. If user or $HOME is unknown,
do nothing."""
- if path[:1] != '~':
+ if not path.startswith('~'):
return path
i, n = 1, len(path)
while i < n and path[i] != '/':
- i = i + 1
+ i += 1
if i == 1:
if not 'HOME' in os.environ:
import pwd
- userhome = pwd.getpwuid(os.getuid())[5]
+ userhome = pwd.getpwuid(os.getuid()).pw_dir
else:
userhome = os.environ['HOME']
else:
pwent = pwd.getpwnam(path[1:i])
except KeyError:
return path
- userhome = pwent[5]
- if userhome[-1:] == '/': i = i + 1
+ userhome = pwent.pw_dir
+ if userhome.endswith('/'):
+ i += 1
return userhome + path[i:]
break
i, j = m.span(0)
name = m.group(1)
- if name[:1] == '{' and name[-1:] == '}':
+ if name.startswith('{') and name.endswith('}'):
name = name[1:-1]
if name in os.environ:
tail = path[j:]
path = path[:i] + os.environ[name]
i = len(path)
- path = path + tail
+ path += tail
else:
i = j
return path