86 lines · 1.6 KB · Python
RawDownload
"""Constants/functions for interpreting results of os.stat() and os.lstat(). Suggested usage: from stat import *""" # XXX Strictly spoken, this module may have to be adapted for each POSIX# implementation; in practice, however, the numeric constants used by# stat() are almost universal (even for stat() emulations on non-UNIX# systems like MS-DOS). # Indices for stat struct members in tuple returned by os.stat() ST_MODE  = 0ST_INO   = 1ST_DEV   = 2ST_NLINK = 3ST_UID   = 4ST_GID   = 5ST_SIZE  = 6ST_ATIME = 7ST_MTIME = 8ST_CTIME = 9 # Extract bits from the mode def S_IMODE(mode):    return mode & 07777 def S_IFMT(mode):    return mode & 0170000 # Constants used as S_IFMT() for various file types# (not all are implemented on all systems) S_IFDIR  = 0040000S_IFCHR  = 0020000S_IFBLK  = 0060000S_IFREG  = 0100000S_IFIFO  = 0010000S_IFLNK  = 0120000S_IFSOCK = 0140000 # Functions to test for each file type def S_ISDIR(mode):    return S_IFMT(mode) == S_IFDIR def S_ISCHR(mode):    return S_IFMT(mode) == S_IFCHR def S_ISBLK(mode):    return S_IFMT(mode) == S_IFBLK def S_ISREG(mode):    return S_IFMT(mode) == S_IFREG def S_ISFIFO(mode):    return S_IFMT(mode) == S_IFIFO def S_ISLNK(mode):    return S_IFMT(mode) == S_IFLNK def S_ISSOCK(mode):    return S_IFMT(mode) == S_IFSOCK # Names for permission bits S_ISUID = 04000S_ISGID = 02000S_ENFMT = S_ISGIDS_ISVTX = 01000S_IREAD = 00400S_IWRITE = 00200S_IEXEC = 00100S_IRWXU = 00700S_IRUSR = 00400S_IWUSR = 00200S_IXUSR = 00100S_IRWXG = 00070S_IRGRP = 00040S_IWGRP = 00020S_IXGRP = 00010S_IRWXO = 00007S_IROTH = 00004S_IWOTH = 00002S_IXOTH = 00001