| 
									
										
										
										
											2013-10-13 23:09:14 +03:00
										 |  |  | :mod:`stat` --- Interpreting :func:`~os.stat` results
 | 
					
						
							|  |  |  | =====================================================
 | 
					
						
							| 
									
										
										
										
											2007-08-15 14:28:22 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | .. module:: stat
 | 
					
						
							| 
									
										
										
										
											2009-09-16 15:58:14 +00:00
										 |  |  |    :synopsis: Utilities for interpreting the results of os.stat(),
 | 
					
						
							|  |  |  |               os.lstat() and os.fstat().
 | 
					
						
							| 
									
										
										
										
											2007-08-15 14:28:22 +00:00
										 |  |  | .. sectionauthor:: Skip Montanaro <skip@automatrix.com>
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-06-22 21:05:02 +02:00
										 |  |  | **Source code:** :source:`Modules/_stat.c`
 | 
					
						
							|  |  |  |                  :source:`Lib/stat.py`
 | 
					
						
							| 
									
										
										
										
											2011-01-27 20:38:46 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | --------------
 | 
					
						
							| 
									
										
										
										
											2007-08-15 14:28:22 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | The :mod:`stat` module defines constants and functions for interpreting the
 | 
					
						
							|  |  |  | results of :func:`os.stat`, :func:`os.fstat` and :func:`os.lstat` (if they
 | 
					
						
							| 
									
										
										
										
											2010-10-06 10:11:56 +00:00
										 |  |  | exist).  For complete details about the :c:func:`stat`, :c:func:`fstat` and
 | 
					
						
							|  |  |  | :c:func:`lstat` calls, consult the documentation for your system.
 | 
					
						
							| 
									
										
										
										
											2007-08-15 14:28:22 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-06-22 21:05:02 +02:00
										 |  |  | .. versionchanged:: 3.4
 | 
					
						
							|  |  |  |    The stat module is backed by a C implementation.
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-08-15 14:28:22 +00:00
										 |  |  | The :mod:`stat` module defines the following functions to test for specific file
 | 
					
						
							|  |  |  | types:
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .. function:: S_ISDIR(mode)
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    Return non-zero if the mode is from a directory.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .. function:: S_ISCHR(mode)
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    Return non-zero if the mode is from a character special device file.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .. function:: S_ISBLK(mode)
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    Return non-zero if the mode is from a block special device file.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .. function:: S_ISREG(mode)
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    Return non-zero if the mode is from a regular file.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .. function:: S_ISFIFO(mode)
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    Return non-zero if the mode is from a FIFO (named pipe).
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .. function:: S_ISLNK(mode)
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    Return non-zero if the mode is from a symbolic link.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .. function:: S_ISSOCK(mode)
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    Return non-zero if the mode is from a socket.
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-06-22 21:05:02 +02:00
										 |  |  | .. function:: S_ISDOOR(mode)
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    Return non-zero if the mode is from a door.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    .. versionadded:: 3.4
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .. function:: S_ISPORT(mode)
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    Return non-zero if the mode is from an event port.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    .. versionadded:: 3.4
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .. function:: S_ISWHT(mode)
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    Return non-zero if the mode is from a whiteout.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    .. versionadded:: 3.4
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-08-15 14:28:22 +00:00
										 |  |  | Two additional functions are defined for more general manipulation of the file's
 | 
					
						
							|  |  |  | mode:
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .. function:: S_IMODE(mode)
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    Return the portion of the file's mode that can be set by :func:`os.chmod`\
 | 
					
						
							|  |  |  |    ---that is, the file's permission bits, plus the sticky bit, set-group-id, and
 | 
					
						
							|  |  |  |    set-user-id bits (on systems that support them).
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .. function:: S_IFMT(mode)
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    Return the portion of the file's mode that describes the file type (used by the
 | 
					
						
							|  |  |  |    :func:`S_IS\*` functions above).
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Normally, you would use the :func:`os.path.is\*` functions for testing the type
 | 
					
						
							|  |  |  | of a file; the functions here are useful when you are doing multiple tests of
 | 
					
						
							| 
									
										
										
										
											2010-10-06 10:11:56 +00:00
										 |  |  | the same file and wish to avoid the overhead of the :c:func:`stat` system call
 | 
					
						
							| 
									
										
										
										
											2007-08-15 14:28:22 +00:00
										 |  |  | for each test.  These are also useful when checking for information about a file
 | 
					
						
							|  |  |  | that isn't handled by :mod:`os.path`, like the tests for block and character
 | 
					
						
							|  |  |  | devices.
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-03-10 17:18:33 -05:00
										 |  |  | Example::
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    import os, sys
 | 
					
						
							|  |  |  |    from stat import *
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    def walktree(top, callback):
 | 
					
						
							|  |  |  |        '''recursively descend the directory tree rooted at top,
 | 
					
						
							|  |  |  |           calling the callback function for each regular file'''
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |        for f in os.listdir(top):
 | 
					
						
							|  |  |  |            pathname = os.path.join(top, f)
 | 
					
						
							| 
									
										
										
										
											2011-08-01 22:58:53 +02:00
										 |  |  |            mode = os.stat(pathname).st_mode
 | 
					
						
							| 
									
										
										
										
											2011-03-10 17:18:33 -05:00
										 |  |  |            if S_ISDIR(mode):
 | 
					
						
							|  |  |  |                # It's a directory, recurse into it
 | 
					
						
							|  |  |  |                walktree(pathname, callback)
 | 
					
						
							|  |  |  |            elif S_ISREG(mode):
 | 
					
						
							|  |  |  |                # It's a file, call the callback function
 | 
					
						
							|  |  |  |                callback(pathname)
 | 
					
						
							|  |  |  |            else:
 | 
					
						
							|  |  |  |                # Unknown file type, print a message
 | 
					
						
							|  |  |  |                print('Skipping %s' % pathname)
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    def visitfile(file):
 | 
					
						
							|  |  |  |        print('visiting', file)
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    if __name__ == '__main__':
 | 
					
						
							|  |  |  |        walktree(sys.argv[1], visitfile)
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-19 09:46:37 -05:00
										 |  |  | An additional utility function is provided to convert a file's mode in a human
 | 
					
						
							| 
									
										
										
										
											2012-05-15 15:30:25 +02:00
										 |  |  | readable string:
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .. function:: filemode(mode)
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    Convert a file's mode to a string of the form '-rwxrwxrwx'.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    .. versionadded:: 3.3
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-06-22 21:05:02 +02:00
										 |  |  |    .. versionchanged:: 3.4
 | 
					
						
							|  |  |  |       The function supports :data:`S_IFDOOR`, :data:`S_IFPORT` and
 | 
					
						
							|  |  |  |       :data:`S_IFWHT`.
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-05-15 15:30:25 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-08-15 14:28:22 +00:00
										 |  |  | All the variables below are simply symbolic indexes into the 10-tuple returned
 | 
					
						
							|  |  |  | by :func:`os.stat`, :func:`os.fstat` or :func:`os.lstat`.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .. data:: ST_MODE
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    Inode protection mode.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .. data:: ST_INO
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    Inode number.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .. data:: ST_DEV
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    Device inode resides on.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .. data:: ST_NLINK
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    Number of links to the inode.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .. data:: ST_UID
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    User id of the owner.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .. data:: ST_GID
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    Group id of the owner.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .. data:: ST_SIZE
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    Size in bytes of a plain file; amount of data waiting on some special files.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .. data:: ST_ATIME
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    Time of last access.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .. data:: ST_MTIME
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    Time of last modification.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .. data:: ST_CTIME
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    The "ctime" as reported by the operating system.  On some systems (like Unix) is
 | 
					
						
							|  |  |  |    the time of the last metadata change, and, on others (like Windows), is the
 | 
					
						
							|  |  |  |    creation time (see platform documentation for details).
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | The interpretation of "file size" changes according to the file type.  For plain
 | 
					
						
							|  |  |  | files this is the size of the file in bytes.  For FIFOs and sockets under most
 | 
					
						
							|  |  |  | flavors of Unix (including Linux in particular), the "size" is the number of
 | 
					
						
							|  |  |  | bytes waiting to be read at the time of the call to :func:`os.stat`,
 | 
					
						
							|  |  |  | :func:`os.fstat`, or :func:`os.lstat`; this can sometimes be useful, especially
 | 
					
						
							|  |  |  | for polling one of these special files after a non-blocking open.  The meaning
 | 
					
						
							|  |  |  | of the size field for other character and block devices varies more, depending
 | 
					
						
							|  |  |  | on the implementation of the underlying system call.
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-07-21 00:51:58 +00:00
										 |  |  | The variables below define the flags used in the :data:`ST_MODE` field.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Use of the functions above is more portable than use of the first set of flags:
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .. data:: S_IFSOCK
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    Socket.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .. data:: S_IFLNK
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    Symbolic link.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .. data:: S_IFREG
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    Regular file.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .. data:: S_IFBLK
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    Block device.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .. data:: S_IFDIR
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    Directory.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .. data:: S_IFCHR
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    Character device.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .. data:: S_IFIFO
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    FIFO.
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-06-22 21:05:02 +02:00
										 |  |  | .. data:: S_IFDOOR
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    Door.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    .. versionadded:: 3.4
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .. data:: S_IFPORT
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    Event port.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    .. versionadded:: 3.4
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .. data:: S_IFWHT
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    Whiteout.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    .. versionadded:: 3.4
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .. note::
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    :data:`S_IFDOOR`, :data:`S_IFPORT` or :data:`S_IFWHT` are defined as
 | 
					
						
							|  |  |  |    0 when the platform does not have support for the file types.
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-07-21 00:51:58 +00:00
										 |  |  | The following flags can also be used in the *mode* argument of :func:`os.chmod`:
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .. data:: S_ISUID
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    Set UID bit.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .. data:: S_ISGID
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    Set-group-ID bit.  This bit has several special uses.  For a directory
 | 
					
						
							|  |  |  |    it indicates that BSD semantics is to be used for that directory:
 | 
					
						
							|  |  |  |    files created there inherit their group ID from the directory, not
 | 
					
						
							|  |  |  |    from the effective group ID of the creating process, and directories
 | 
					
						
							|  |  |  |    created there will also get the :data:`S_ISGID` bit set.  For a
 | 
					
						
							|  |  |  |    file that does not have the group execution bit (:data:`S_IXGRP`)
 | 
					
						
							|  |  |  |    set, the set-group-ID bit indicates mandatory file/record locking
 | 
					
						
							|  |  |  |    (see also :data:`S_ENFMT`).
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .. data:: S_ISVTX
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    Sticky bit.  When this bit is set on a directory it means that a file
 | 
					
						
							|  |  |  |    in that directory can be renamed or deleted only by the owner of the
 | 
					
						
							|  |  |  |    file, by the owner of the directory, or by a privileged process.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .. data:: S_IRWXU
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    Mask for file owner permissions.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .. data:: S_IRUSR
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    Owner has read permission.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .. data:: S_IWUSR
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    Owner has write permission.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .. data:: S_IXUSR
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    Owner has execute permission.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .. data:: S_IRWXG
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    Mask for group permissions.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .. data:: S_IRGRP
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    Group has read permission.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .. data:: S_IWGRP
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    Group has write permission.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .. data:: S_IXGRP
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    Group has execute permission.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .. data:: S_IRWXO
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    Mask for permissions for others (not in group).
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .. data:: S_IROTH
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    Others have read permission.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .. data:: S_IWOTH
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    Others have write permission.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .. data:: S_IXOTH
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    Others have execute permission.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .. data:: S_ENFMT
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    System V file locking enforcement.  This flag is shared with :data:`S_ISGID`:
 | 
					
						
							|  |  |  |    file/record locking is enforced on files that do not have the group
 | 
					
						
							|  |  |  |    execution bit (:data:`S_IXGRP`) set.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .. data:: S_IREAD
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    Unix V7 synonym for :data:`S_IRUSR`.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .. data:: S_IWRITE
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    Unix V7 synonym for :data:`S_IWUSR`.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .. data:: S_IEXEC
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    Unix V7 synonym for :data:`S_IXUSR`.
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-03-10 17:18:33 -05:00
										 |  |  | The following flags can be used in the *flags* argument of :func:`os.chflags`:
 | 
					
						
							| 
									
										
										
										
											2007-08-15 14:28:22 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-03-10 17:18:33 -05:00
										 |  |  | .. data:: UF_NODUMP
 | 
					
						
							| 
									
										
										
										
											2007-08-15 14:28:22 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-03-10 17:18:33 -05:00
										 |  |  |    Do not dump the file.
 | 
					
						
							| 
									
										
										
										
											2007-08-15 14:28:22 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-03-10 17:18:33 -05:00
										 |  |  | .. data:: UF_IMMUTABLE
 | 
					
						
							| 
									
										
										
										
											2007-08-15 14:28:22 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-03-10 17:18:33 -05:00
										 |  |  |    The file may not be changed.
 | 
					
						
							| 
									
										
										
										
											2007-08-15 14:28:22 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-03-10 17:18:33 -05:00
										 |  |  | .. data:: UF_APPEND
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    The file may only be appended to.
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-06-28 00:00:28 -07:00
										 |  |  | .. data:: UF_OPAQUE
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    The directory is opaque when viewed through a union stack.
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-06-25 12:03:33 +02:00
										 |  |  | .. data:: UF_NOUNLINK
 | 
					
						
							| 
									
										
										
										
											2011-03-10 17:18:33 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  |    The file may not be renamed or deleted.
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-06-28 00:00:28 -07:00
										 |  |  | .. data:: UF_COMPRESSED
 | 
					
						
							| 
									
										
										
										
											2011-03-10 17:18:33 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-06-28 00:00:28 -07:00
										 |  |  |    The file is stored compressed (Mac OS X 10.6+).
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .. data:: UF_HIDDEN
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    The file should not be displayed in a GUI (Mac OS X 10.5+).
 | 
					
						
							| 
									
										
										
										
											2011-03-10 17:18:33 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  | .. data:: SF_ARCHIVED
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    The file may be archived.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .. data:: SF_IMMUTABLE
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    The file may not be changed.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .. data:: SF_APPEND
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    The file may only be appended to.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .. data:: SF_NOUNLINK
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    The file may not be renamed or deleted.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .. data:: SF_SNAPSHOT
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    The file is a snapshot file.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | See the \*BSD or Mac OS systems man page :manpage:`chflags(2)` for more information.
 | 
					
						
							| 
									
										
										
										
											2014-06-19 09:46:37 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  | On Windows, the following file attribute constants are available for use when
 | 
					
						
							|  |  |  | testing bits in the ``st_file_attributes`` member returned by :func:`os.stat`.
 | 
					
						
							|  |  |  | See the `Windows API documentation
 | 
					
						
							|  |  |  | <http://msdn.microsoft.com/en-us/library/windows/desktop/gg258117.aspx>`_
 | 
					
						
							|  |  |  | for more detail on the meaning of these constants.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .. data:: FILE_ATTRIBUTE_ARCHIVE
 | 
					
						
							|  |  |  |           FILE_ATTRIBUTE_COMPRESSED
 | 
					
						
							|  |  |  |           FILE_ATTRIBUTE_DEVICE
 | 
					
						
							|  |  |  |           FILE_ATTRIBUTE_DIRECTORY
 | 
					
						
							|  |  |  |           FILE_ATTRIBUTE_ENCRYPTED
 | 
					
						
							|  |  |  |           FILE_ATTRIBUTE_HIDDEN
 | 
					
						
							|  |  |  |           FILE_ATTRIBUTE_INTEGRITY_STREAM
 | 
					
						
							|  |  |  |           FILE_ATTRIBUTE_NORMAL
 | 
					
						
							|  |  |  |           FILE_ATTRIBUTE_NOT_CONTENT_INDEXED
 | 
					
						
							|  |  |  |           FILE_ATTRIBUTE_NO_SCRUB_DATA
 | 
					
						
							|  |  |  |           FILE_ATTRIBUTE_OFFLINE
 | 
					
						
							|  |  |  |           FILE_ATTRIBUTE_READONLY
 | 
					
						
							|  |  |  |           FILE_ATTRIBUTE_REPARSE_POINT
 | 
					
						
							|  |  |  |           FILE_ATTRIBUTE_SPARSE_FILE
 | 
					
						
							|  |  |  |           FILE_ATTRIBUTE_SYSTEM
 | 
					
						
							|  |  |  |           FILE_ATTRIBUTE_TEMPORARY
 | 
					
						
							|  |  |  |           FILE_ATTRIBUTE_VIRTUAL
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    .. versionadded:: 3.5
 |