(path)
return userhome + path[i:]
Expand ~ and ~user constructs.

    If user or $HOME is unknown, do nothing.
Expand ~ and ~user constructs.
Expand ~ and ~user constructs .
def expanduser(path):
    """Expand ~ and ~user constructs.

    If user or $HOME is unknown, do nothing."""
    if isinstance(path, bytes):
        tilde = b'~'
    else:
        tilde = '~'
    if not path.startswith(tilde):
        return path
    i, n = 1, len(path)
    while i < n and path[i] not in _get_bothseps(path):
        i += 1

    if 'HOME' in os.environ:
        userhome = os.environ['HOME']
    elif 'USERPROFILE' in os.environ:
        userhome = os.environ['USERPROFILE']
    elif not 'HOMEPATH' in os.environ:
        return path
    else:
        try:
            drive = os.environ['HOMEDRIVE']
        except KeyError:
            drive = ''
        userhome = join(drive, os.environ['HOMEPATH'])

    if isinstance(path, bytes):
        userhome = userhome.encode(sys.getfilesystemencoding())

    if i != 1: #~user
        userhome = join(dirname(userhome), path[1:i])

    return userhome + path[i:]
def expanduser ( path ) : if isinstance ( path , bytes ) : tilde = b'~' else : tilde = '~' if not path . startswith ( tilde ) : return path i , n = 1 , len ( path ) while i < n and path [ i ] not in _get_bothseps ( path ) : i += 1 if 'HOME' in os . environ : userhome = os . environ [ 'HOME' ] elif 'USERPROFILE' in os . environ : userhome = os . environ [ 'USERPROFILE' ] elif not 'HOMEPATH' in os . environ : return path else : try : drive = os . environ [ 'HOMEDRIVE' ] except KeyError : drive = '' userhome = join ( drive , os . environ [ 'HOMEPATH' ] ) if isinstance ( path , bytes ) : userhome = userhome . encode ( sys . getfilesystemencoding ( ) ) if i != 1 : #~user userhome = join ( dirname ( userhome ) , path [ 1 : i ] ) return userhome + path [ i : ]