mirror of
				https://github.com/python/cpython.git
				synced 2025-11-03 23:21:29 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			77 lines
		
	
	
	
		
			2.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			77 lines
		
	
	
	
		
			2.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
"""
 | 
						|
Path operations common to more than one OS
 | 
						|
Do not use directly.  The OS specific modules import the appropriate
 | 
						|
functions from this module themselves.
 | 
						|
"""
 | 
						|
import os
 | 
						|
import stat
 | 
						|
 | 
						|
__all__ = ['commonprefix', 'exists', 'getatime', 'getctime', 'getmtime',
 | 
						|
           'getsize', 'isdir', 'isfile']
 | 
						|
 | 
						|
 | 
						|
# Does a path exist?
 | 
						|
# This is false for dangling symbolic links on systems that support them.
 | 
						|
def exists(path):
 | 
						|
    """Test whether a path exists.  Returns False for broken symbolic links"""
 | 
						|
    try:
 | 
						|
        st = os.stat(path)
 | 
						|
    except os.error:
 | 
						|
        return False
 | 
						|
    return True
 | 
						|
 | 
						|
 | 
						|
# This follows symbolic links, so both islink() and isdir() can be true
 | 
						|
# for the same path ono systems that support symlinks
 | 
						|
def isfile(path):
 | 
						|
    """Test whether a path is a regular file"""
 | 
						|
    try:
 | 
						|
        st = os.stat(path)
 | 
						|
    except os.error:
 | 
						|
        return False
 | 
						|
    return stat.S_ISREG(st.st_mode)
 | 
						|
 | 
						|
 | 
						|
# Is a path a directory?
 | 
						|
# This follows symbolic links, so both islink() and isdir()
 | 
						|
# can be true for the same path on systems that support symlinks
 | 
						|
def isdir(s):
 | 
						|
    """Return true if the pathname refers to an existing directory."""
 | 
						|
    try:
 | 
						|
        st = os.stat(s)
 | 
						|
    except os.error:
 | 
						|
        return False
 | 
						|
    return stat.S_ISDIR(st.st_mode)
 | 
						|
 | 
						|
 | 
						|
def getsize(filename):
 | 
						|
    """Return the size of a file, reported by os.stat()."""
 | 
						|
    return os.stat(filename).st_size
 | 
						|
 | 
						|
 | 
						|
def getmtime(filename):
 | 
						|
    """Return the last modification time of a file, reported by os.stat()."""
 | 
						|
    return os.stat(filename).st_mtime
 | 
						|
 | 
						|
 | 
						|
def getatime(filename):
 | 
						|
    """Return the last access time of a file, reported by os.stat()."""
 | 
						|
    return os.stat(filename).st_atime
 | 
						|
 | 
						|
 | 
						|
def getctime(filename):
 | 
						|
    """Return the metadata change time of a file, reported by os.stat()."""
 | 
						|
    return os.stat(filename).st_ctime
 | 
						|
 | 
						|
 | 
						|
# Return the longest prefix of all list elements.
 | 
						|
def commonprefix(m):
 | 
						|
    "Given a list of pathnames, returns the longest common leading component"
 | 
						|
    if not m: return ''
 | 
						|
    s1 = min(m)
 | 
						|
    s2 = max(m)
 | 
						|
    n = min(len(s1), len(s2))
 | 
						|
    for i in xrange(n):
 | 
						|
        if s1[i] != s2[i]:
 | 
						|
            return s1[:i]
 | 
						|
    return s1[:n]
 |