17db96d56Sopenharmony_ci:mod:`stat` --- Interpreting :func:`~os.stat` results 27db96d56Sopenharmony_ci===================================================== 37db96d56Sopenharmony_ci 47db96d56Sopenharmony_ci.. module:: stat 57db96d56Sopenharmony_ci :synopsis: Utilities for interpreting the results of os.stat(), 67db96d56Sopenharmony_ci os.lstat() and os.fstat(). 77db96d56Sopenharmony_ci 87db96d56Sopenharmony_ci.. sectionauthor:: Skip Montanaro <skip@automatrix.com> 97db96d56Sopenharmony_ci 107db96d56Sopenharmony_ci**Source code:** :source:`Lib/stat.py` 117db96d56Sopenharmony_ci 127db96d56Sopenharmony_ci-------------- 137db96d56Sopenharmony_ci 147db96d56Sopenharmony_ciThe :mod:`stat` module defines constants and functions for interpreting the 157db96d56Sopenharmony_ciresults of :func:`os.stat`, :func:`os.fstat` and :func:`os.lstat` (if they 167db96d56Sopenharmony_ciexist). For complete details about the :c:func:`stat`, :c:func:`fstat` and 177db96d56Sopenharmony_ci:c:func:`lstat` calls, consult the documentation for your system. 187db96d56Sopenharmony_ci 197db96d56Sopenharmony_ci.. versionchanged:: 3.4 207db96d56Sopenharmony_ci The stat module is backed by a C implementation. 217db96d56Sopenharmony_ci 227db96d56Sopenharmony_ciThe :mod:`stat` module defines the following functions to test for specific file 237db96d56Sopenharmony_citypes: 247db96d56Sopenharmony_ci 257db96d56Sopenharmony_ci 267db96d56Sopenharmony_ci.. function:: S_ISDIR(mode) 277db96d56Sopenharmony_ci 287db96d56Sopenharmony_ci Return non-zero if the mode is from a directory. 297db96d56Sopenharmony_ci 307db96d56Sopenharmony_ci 317db96d56Sopenharmony_ci.. function:: S_ISCHR(mode) 327db96d56Sopenharmony_ci 337db96d56Sopenharmony_ci Return non-zero if the mode is from a character special device file. 347db96d56Sopenharmony_ci 357db96d56Sopenharmony_ci 367db96d56Sopenharmony_ci.. function:: S_ISBLK(mode) 377db96d56Sopenharmony_ci 387db96d56Sopenharmony_ci Return non-zero if the mode is from a block special device file. 397db96d56Sopenharmony_ci 407db96d56Sopenharmony_ci 417db96d56Sopenharmony_ci.. function:: S_ISREG(mode) 427db96d56Sopenharmony_ci 437db96d56Sopenharmony_ci Return non-zero if the mode is from a regular file. 447db96d56Sopenharmony_ci 457db96d56Sopenharmony_ci 467db96d56Sopenharmony_ci.. function:: S_ISFIFO(mode) 477db96d56Sopenharmony_ci 487db96d56Sopenharmony_ci Return non-zero if the mode is from a FIFO (named pipe). 497db96d56Sopenharmony_ci 507db96d56Sopenharmony_ci 517db96d56Sopenharmony_ci.. function:: S_ISLNK(mode) 527db96d56Sopenharmony_ci 537db96d56Sopenharmony_ci Return non-zero if the mode is from a symbolic link. 547db96d56Sopenharmony_ci 557db96d56Sopenharmony_ci 567db96d56Sopenharmony_ci.. function:: S_ISSOCK(mode) 577db96d56Sopenharmony_ci 587db96d56Sopenharmony_ci Return non-zero if the mode is from a socket. 597db96d56Sopenharmony_ci 607db96d56Sopenharmony_ci.. function:: S_ISDOOR(mode) 617db96d56Sopenharmony_ci 627db96d56Sopenharmony_ci Return non-zero if the mode is from a door. 637db96d56Sopenharmony_ci 647db96d56Sopenharmony_ci .. versionadded:: 3.4 657db96d56Sopenharmony_ci 667db96d56Sopenharmony_ci.. function:: S_ISPORT(mode) 677db96d56Sopenharmony_ci 687db96d56Sopenharmony_ci Return non-zero if the mode is from an event port. 697db96d56Sopenharmony_ci 707db96d56Sopenharmony_ci .. versionadded:: 3.4 717db96d56Sopenharmony_ci 727db96d56Sopenharmony_ci.. function:: S_ISWHT(mode) 737db96d56Sopenharmony_ci 747db96d56Sopenharmony_ci Return non-zero if the mode is from a whiteout. 757db96d56Sopenharmony_ci 767db96d56Sopenharmony_ci .. versionadded:: 3.4 777db96d56Sopenharmony_ci 787db96d56Sopenharmony_ciTwo additional functions are defined for more general manipulation of the file's 797db96d56Sopenharmony_cimode: 807db96d56Sopenharmony_ci 817db96d56Sopenharmony_ci 827db96d56Sopenharmony_ci.. function:: S_IMODE(mode) 837db96d56Sopenharmony_ci 847db96d56Sopenharmony_ci Return the portion of the file's mode that can be set by 857db96d56Sopenharmony_ci :func:`os.chmod`\ ---that is, the file's permission bits, plus the sticky 867db96d56Sopenharmony_ci bit, set-group-id, and set-user-id bits (on systems that support them). 877db96d56Sopenharmony_ci 887db96d56Sopenharmony_ci 897db96d56Sopenharmony_ci.. function:: S_IFMT(mode) 907db96d56Sopenharmony_ci 917db96d56Sopenharmony_ci Return the portion of the file's mode that describes the file type (used by the 927db96d56Sopenharmony_ci :func:`S_IS\*` functions above). 937db96d56Sopenharmony_ci 947db96d56Sopenharmony_ciNormally, you would use the :func:`os.path.is\*` functions for testing the type 957db96d56Sopenharmony_ciof a file; the functions here are useful when you are doing multiple tests of 967db96d56Sopenharmony_cithe same file and wish to avoid the overhead of the :c:func:`stat` system call 977db96d56Sopenharmony_cifor each test. These are also useful when checking for information about a file 987db96d56Sopenharmony_cithat isn't handled by :mod:`os.path`, like the tests for block and character 997db96d56Sopenharmony_cidevices. 1007db96d56Sopenharmony_ci 1017db96d56Sopenharmony_ciExample:: 1027db96d56Sopenharmony_ci 1037db96d56Sopenharmony_ci import os, sys 1047db96d56Sopenharmony_ci from stat import * 1057db96d56Sopenharmony_ci 1067db96d56Sopenharmony_ci def walktree(top, callback): 1077db96d56Sopenharmony_ci '''recursively descend the directory tree rooted at top, 1087db96d56Sopenharmony_ci calling the callback function for each regular file''' 1097db96d56Sopenharmony_ci 1107db96d56Sopenharmony_ci for f in os.listdir(top): 1117db96d56Sopenharmony_ci pathname = os.path.join(top, f) 1127db96d56Sopenharmony_ci mode = os.lstat(pathname).st_mode 1137db96d56Sopenharmony_ci if S_ISDIR(mode): 1147db96d56Sopenharmony_ci # It's a directory, recurse into it 1157db96d56Sopenharmony_ci walktree(pathname, callback) 1167db96d56Sopenharmony_ci elif S_ISREG(mode): 1177db96d56Sopenharmony_ci # It's a file, call the callback function 1187db96d56Sopenharmony_ci callback(pathname) 1197db96d56Sopenharmony_ci else: 1207db96d56Sopenharmony_ci # Unknown file type, print a message 1217db96d56Sopenharmony_ci print('Skipping %s' % pathname) 1227db96d56Sopenharmony_ci 1237db96d56Sopenharmony_ci def visitfile(file): 1247db96d56Sopenharmony_ci print('visiting', file) 1257db96d56Sopenharmony_ci 1267db96d56Sopenharmony_ci if __name__ == '__main__': 1277db96d56Sopenharmony_ci walktree(sys.argv[1], visitfile) 1287db96d56Sopenharmony_ci 1297db96d56Sopenharmony_ciAn additional utility function is provided to convert a file's mode in a human 1307db96d56Sopenharmony_cireadable string: 1317db96d56Sopenharmony_ci 1327db96d56Sopenharmony_ci.. function:: filemode(mode) 1337db96d56Sopenharmony_ci 1347db96d56Sopenharmony_ci Convert a file's mode to a string of the form '-rwxrwxrwx'. 1357db96d56Sopenharmony_ci 1367db96d56Sopenharmony_ci .. versionadded:: 3.3 1377db96d56Sopenharmony_ci 1387db96d56Sopenharmony_ci .. versionchanged:: 3.4 1397db96d56Sopenharmony_ci The function supports :data:`S_IFDOOR`, :data:`S_IFPORT` and 1407db96d56Sopenharmony_ci :data:`S_IFWHT`. 1417db96d56Sopenharmony_ci 1427db96d56Sopenharmony_ci 1437db96d56Sopenharmony_ciAll the variables below are simply symbolic indexes into the 10-tuple returned 1447db96d56Sopenharmony_ciby :func:`os.stat`, :func:`os.fstat` or :func:`os.lstat`. 1457db96d56Sopenharmony_ci 1467db96d56Sopenharmony_ci 1477db96d56Sopenharmony_ci.. data:: ST_MODE 1487db96d56Sopenharmony_ci 1497db96d56Sopenharmony_ci Inode protection mode. 1507db96d56Sopenharmony_ci 1517db96d56Sopenharmony_ci 1527db96d56Sopenharmony_ci.. data:: ST_INO 1537db96d56Sopenharmony_ci 1547db96d56Sopenharmony_ci Inode number. 1557db96d56Sopenharmony_ci 1567db96d56Sopenharmony_ci 1577db96d56Sopenharmony_ci.. data:: ST_DEV 1587db96d56Sopenharmony_ci 1597db96d56Sopenharmony_ci Device inode resides on. 1607db96d56Sopenharmony_ci 1617db96d56Sopenharmony_ci 1627db96d56Sopenharmony_ci.. data:: ST_NLINK 1637db96d56Sopenharmony_ci 1647db96d56Sopenharmony_ci Number of links to the inode. 1657db96d56Sopenharmony_ci 1667db96d56Sopenharmony_ci 1677db96d56Sopenharmony_ci.. data:: ST_UID 1687db96d56Sopenharmony_ci 1697db96d56Sopenharmony_ci User id of the owner. 1707db96d56Sopenharmony_ci 1717db96d56Sopenharmony_ci 1727db96d56Sopenharmony_ci.. data:: ST_GID 1737db96d56Sopenharmony_ci 1747db96d56Sopenharmony_ci Group id of the owner. 1757db96d56Sopenharmony_ci 1767db96d56Sopenharmony_ci 1777db96d56Sopenharmony_ci.. data:: ST_SIZE 1787db96d56Sopenharmony_ci 1797db96d56Sopenharmony_ci Size in bytes of a plain file; amount of data waiting on some special files. 1807db96d56Sopenharmony_ci 1817db96d56Sopenharmony_ci 1827db96d56Sopenharmony_ci.. data:: ST_ATIME 1837db96d56Sopenharmony_ci 1847db96d56Sopenharmony_ci Time of last access. 1857db96d56Sopenharmony_ci 1867db96d56Sopenharmony_ci 1877db96d56Sopenharmony_ci.. data:: ST_MTIME 1887db96d56Sopenharmony_ci 1897db96d56Sopenharmony_ci Time of last modification. 1907db96d56Sopenharmony_ci 1917db96d56Sopenharmony_ci 1927db96d56Sopenharmony_ci.. data:: ST_CTIME 1937db96d56Sopenharmony_ci 1947db96d56Sopenharmony_ci The "ctime" as reported by the operating system. On some systems (like Unix) is 1957db96d56Sopenharmony_ci the time of the last metadata change, and, on others (like Windows), is the 1967db96d56Sopenharmony_ci creation time (see platform documentation for details). 1977db96d56Sopenharmony_ci 1987db96d56Sopenharmony_ciThe interpretation of "file size" changes according to the file type. For plain 1997db96d56Sopenharmony_cifiles this is the size of the file in bytes. For FIFOs and sockets under most 2007db96d56Sopenharmony_ciflavors of Unix (including Linux in particular), the "size" is the number of 2017db96d56Sopenharmony_cibytes waiting to be read at the time of the call to :func:`os.stat`, 2027db96d56Sopenharmony_ci:func:`os.fstat`, or :func:`os.lstat`; this can sometimes be useful, especially 2037db96d56Sopenharmony_cifor polling one of these special files after a non-blocking open. The meaning 2047db96d56Sopenharmony_ciof the size field for other character and block devices varies more, depending 2057db96d56Sopenharmony_cion the implementation of the underlying system call. 2067db96d56Sopenharmony_ci 2077db96d56Sopenharmony_ciThe variables below define the flags used in the :data:`ST_MODE` field. 2087db96d56Sopenharmony_ci 2097db96d56Sopenharmony_ciUse of the functions above is more portable than use of the first set of flags: 2107db96d56Sopenharmony_ci 2117db96d56Sopenharmony_ci.. data:: S_IFSOCK 2127db96d56Sopenharmony_ci 2137db96d56Sopenharmony_ci Socket. 2147db96d56Sopenharmony_ci 2157db96d56Sopenharmony_ci.. data:: S_IFLNK 2167db96d56Sopenharmony_ci 2177db96d56Sopenharmony_ci Symbolic link. 2187db96d56Sopenharmony_ci 2197db96d56Sopenharmony_ci.. data:: S_IFREG 2207db96d56Sopenharmony_ci 2217db96d56Sopenharmony_ci Regular file. 2227db96d56Sopenharmony_ci 2237db96d56Sopenharmony_ci.. data:: S_IFBLK 2247db96d56Sopenharmony_ci 2257db96d56Sopenharmony_ci Block device. 2267db96d56Sopenharmony_ci 2277db96d56Sopenharmony_ci.. data:: S_IFDIR 2287db96d56Sopenharmony_ci 2297db96d56Sopenharmony_ci Directory. 2307db96d56Sopenharmony_ci 2317db96d56Sopenharmony_ci.. data:: S_IFCHR 2327db96d56Sopenharmony_ci 2337db96d56Sopenharmony_ci Character device. 2347db96d56Sopenharmony_ci 2357db96d56Sopenharmony_ci.. data:: S_IFIFO 2367db96d56Sopenharmony_ci 2377db96d56Sopenharmony_ci FIFO. 2387db96d56Sopenharmony_ci 2397db96d56Sopenharmony_ci.. data:: S_IFDOOR 2407db96d56Sopenharmony_ci 2417db96d56Sopenharmony_ci Door. 2427db96d56Sopenharmony_ci 2437db96d56Sopenharmony_ci .. versionadded:: 3.4 2447db96d56Sopenharmony_ci 2457db96d56Sopenharmony_ci.. data:: S_IFPORT 2467db96d56Sopenharmony_ci 2477db96d56Sopenharmony_ci Event port. 2487db96d56Sopenharmony_ci 2497db96d56Sopenharmony_ci .. versionadded:: 3.4 2507db96d56Sopenharmony_ci 2517db96d56Sopenharmony_ci.. data:: S_IFWHT 2527db96d56Sopenharmony_ci 2537db96d56Sopenharmony_ci Whiteout. 2547db96d56Sopenharmony_ci 2557db96d56Sopenharmony_ci .. versionadded:: 3.4 2567db96d56Sopenharmony_ci 2577db96d56Sopenharmony_ci.. note:: 2587db96d56Sopenharmony_ci 2597db96d56Sopenharmony_ci :data:`S_IFDOOR`, :data:`S_IFPORT` or :data:`S_IFWHT` are defined as 2607db96d56Sopenharmony_ci 0 when the platform does not have support for the file types. 2617db96d56Sopenharmony_ci 2627db96d56Sopenharmony_ciThe following flags can also be used in the *mode* argument of :func:`os.chmod`: 2637db96d56Sopenharmony_ci 2647db96d56Sopenharmony_ci.. data:: S_ISUID 2657db96d56Sopenharmony_ci 2667db96d56Sopenharmony_ci Set UID bit. 2677db96d56Sopenharmony_ci 2687db96d56Sopenharmony_ci.. data:: S_ISGID 2697db96d56Sopenharmony_ci 2707db96d56Sopenharmony_ci Set-group-ID bit. This bit has several special uses. For a directory 2717db96d56Sopenharmony_ci it indicates that BSD semantics is to be used for that directory: 2727db96d56Sopenharmony_ci files created there inherit their group ID from the directory, not 2737db96d56Sopenharmony_ci from the effective group ID of the creating process, and directories 2747db96d56Sopenharmony_ci created there will also get the :data:`S_ISGID` bit set. For a 2757db96d56Sopenharmony_ci file that does not have the group execution bit (:data:`S_IXGRP`) 2767db96d56Sopenharmony_ci set, the set-group-ID bit indicates mandatory file/record locking 2777db96d56Sopenharmony_ci (see also :data:`S_ENFMT`). 2787db96d56Sopenharmony_ci 2797db96d56Sopenharmony_ci.. data:: S_ISVTX 2807db96d56Sopenharmony_ci 2817db96d56Sopenharmony_ci Sticky bit. When this bit is set on a directory it means that a file 2827db96d56Sopenharmony_ci in that directory can be renamed or deleted only by the owner of the 2837db96d56Sopenharmony_ci file, by the owner of the directory, or by a privileged process. 2847db96d56Sopenharmony_ci 2857db96d56Sopenharmony_ci.. data:: S_IRWXU 2867db96d56Sopenharmony_ci 2877db96d56Sopenharmony_ci Mask for file owner permissions. 2887db96d56Sopenharmony_ci 2897db96d56Sopenharmony_ci.. data:: S_IRUSR 2907db96d56Sopenharmony_ci 2917db96d56Sopenharmony_ci Owner has read permission. 2927db96d56Sopenharmony_ci 2937db96d56Sopenharmony_ci.. data:: S_IWUSR 2947db96d56Sopenharmony_ci 2957db96d56Sopenharmony_ci Owner has write permission. 2967db96d56Sopenharmony_ci 2977db96d56Sopenharmony_ci.. data:: S_IXUSR 2987db96d56Sopenharmony_ci 2997db96d56Sopenharmony_ci Owner has execute permission. 3007db96d56Sopenharmony_ci 3017db96d56Sopenharmony_ci.. data:: S_IRWXG 3027db96d56Sopenharmony_ci 3037db96d56Sopenharmony_ci Mask for group permissions. 3047db96d56Sopenharmony_ci 3057db96d56Sopenharmony_ci.. data:: S_IRGRP 3067db96d56Sopenharmony_ci 3077db96d56Sopenharmony_ci Group has read permission. 3087db96d56Sopenharmony_ci 3097db96d56Sopenharmony_ci.. data:: S_IWGRP 3107db96d56Sopenharmony_ci 3117db96d56Sopenharmony_ci Group has write permission. 3127db96d56Sopenharmony_ci 3137db96d56Sopenharmony_ci.. data:: S_IXGRP 3147db96d56Sopenharmony_ci 3157db96d56Sopenharmony_ci Group has execute permission. 3167db96d56Sopenharmony_ci 3177db96d56Sopenharmony_ci.. data:: S_IRWXO 3187db96d56Sopenharmony_ci 3197db96d56Sopenharmony_ci Mask for permissions for others (not in group). 3207db96d56Sopenharmony_ci 3217db96d56Sopenharmony_ci.. data:: S_IROTH 3227db96d56Sopenharmony_ci 3237db96d56Sopenharmony_ci Others have read permission. 3247db96d56Sopenharmony_ci 3257db96d56Sopenharmony_ci.. data:: S_IWOTH 3267db96d56Sopenharmony_ci 3277db96d56Sopenharmony_ci Others have write permission. 3287db96d56Sopenharmony_ci 3297db96d56Sopenharmony_ci.. data:: S_IXOTH 3307db96d56Sopenharmony_ci 3317db96d56Sopenharmony_ci Others have execute permission. 3327db96d56Sopenharmony_ci 3337db96d56Sopenharmony_ci.. data:: S_ENFMT 3347db96d56Sopenharmony_ci 3357db96d56Sopenharmony_ci System V file locking enforcement. This flag is shared with :data:`S_ISGID`: 3367db96d56Sopenharmony_ci file/record locking is enforced on files that do not have the group 3377db96d56Sopenharmony_ci execution bit (:data:`S_IXGRP`) set. 3387db96d56Sopenharmony_ci 3397db96d56Sopenharmony_ci.. data:: S_IREAD 3407db96d56Sopenharmony_ci 3417db96d56Sopenharmony_ci Unix V7 synonym for :data:`S_IRUSR`. 3427db96d56Sopenharmony_ci 3437db96d56Sopenharmony_ci.. data:: S_IWRITE 3447db96d56Sopenharmony_ci 3457db96d56Sopenharmony_ci Unix V7 synonym for :data:`S_IWUSR`. 3467db96d56Sopenharmony_ci 3477db96d56Sopenharmony_ci.. data:: S_IEXEC 3487db96d56Sopenharmony_ci 3497db96d56Sopenharmony_ci Unix V7 synonym for :data:`S_IXUSR`. 3507db96d56Sopenharmony_ci 3517db96d56Sopenharmony_ciThe following flags can be used in the *flags* argument of :func:`os.chflags`: 3527db96d56Sopenharmony_ci 3537db96d56Sopenharmony_ci.. data:: UF_NODUMP 3547db96d56Sopenharmony_ci 3557db96d56Sopenharmony_ci Do not dump the file. 3567db96d56Sopenharmony_ci 3577db96d56Sopenharmony_ci.. data:: UF_IMMUTABLE 3587db96d56Sopenharmony_ci 3597db96d56Sopenharmony_ci The file may not be changed. 3607db96d56Sopenharmony_ci 3617db96d56Sopenharmony_ci.. data:: UF_APPEND 3627db96d56Sopenharmony_ci 3637db96d56Sopenharmony_ci The file may only be appended to. 3647db96d56Sopenharmony_ci 3657db96d56Sopenharmony_ci.. data:: UF_OPAQUE 3667db96d56Sopenharmony_ci 3677db96d56Sopenharmony_ci The directory is opaque when viewed through a union stack. 3687db96d56Sopenharmony_ci 3697db96d56Sopenharmony_ci.. data:: UF_NOUNLINK 3707db96d56Sopenharmony_ci 3717db96d56Sopenharmony_ci The file may not be renamed or deleted. 3727db96d56Sopenharmony_ci 3737db96d56Sopenharmony_ci.. data:: UF_COMPRESSED 3747db96d56Sopenharmony_ci 3757db96d56Sopenharmony_ci The file is stored compressed (macOS 10.6+). 3767db96d56Sopenharmony_ci 3777db96d56Sopenharmony_ci.. data:: UF_HIDDEN 3787db96d56Sopenharmony_ci 3797db96d56Sopenharmony_ci The file should not be displayed in a GUI (macOS 10.5+). 3807db96d56Sopenharmony_ci 3817db96d56Sopenharmony_ci.. data:: SF_ARCHIVED 3827db96d56Sopenharmony_ci 3837db96d56Sopenharmony_ci The file may be archived. 3847db96d56Sopenharmony_ci 3857db96d56Sopenharmony_ci.. data:: SF_IMMUTABLE 3867db96d56Sopenharmony_ci 3877db96d56Sopenharmony_ci The file may not be changed. 3887db96d56Sopenharmony_ci 3897db96d56Sopenharmony_ci.. data:: SF_APPEND 3907db96d56Sopenharmony_ci 3917db96d56Sopenharmony_ci The file may only be appended to. 3927db96d56Sopenharmony_ci 3937db96d56Sopenharmony_ci.. data:: SF_NOUNLINK 3947db96d56Sopenharmony_ci 3957db96d56Sopenharmony_ci The file may not be renamed or deleted. 3967db96d56Sopenharmony_ci 3977db96d56Sopenharmony_ci.. data:: SF_SNAPSHOT 3987db96d56Sopenharmony_ci 3997db96d56Sopenharmony_ci The file is a snapshot file. 4007db96d56Sopenharmony_ci 4017db96d56Sopenharmony_ciSee the \*BSD or macOS systems man page :manpage:`chflags(2)` for more information. 4027db96d56Sopenharmony_ci 4037db96d56Sopenharmony_ciOn Windows, the following file attribute constants are available for use when 4047db96d56Sopenharmony_citesting bits in the ``st_file_attributes`` member returned by :func:`os.stat`. 4057db96d56Sopenharmony_ciSee the `Windows API documentation 4067db96d56Sopenharmony_ci<https://msdn.microsoft.com/en-us/library/windows/desktop/gg258117.aspx>`_ 4077db96d56Sopenharmony_cifor more detail on the meaning of these constants. 4087db96d56Sopenharmony_ci 4097db96d56Sopenharmony_ci.. data:: FILE_ATTRIBUTE_ARCHIVE 4107db96d56Sopenharmony_ci FILE_ATTRIBUTE_COMPRESSED 4117db96d56Sopenharmony_ci FILE_ATTRIBUTE_DEVICE 4127db96d56Sopenharmony_ci FILE_ATTRIBUTE_DIRECTORY 4137db96d56Sopenharmony_ci FILE_ATTRIBUTE_ENCRYPTED 4147db96d56Sopenharmony_ci FILE_ATTRIBUTE_HIDDEN 4157db96d56Sopenharmony_ci FILE_ATTRIBUTE_INTEGRITY_STREAM 4167db96d56Sopenharmony_ci FILE_ATTRIBUTE_NORMAL 4177db96d56Sopenharmony_ci FILE_ATTRIBUTE_NOT_CONTENT_INDEXED 4187db96d56Sopenharmony_ci FILE_ATTRIBUTE_NO_SCRUB_DATA 4197db96d56Sopenharmony_ci FILE_ATTRIBUTE_OFFLINE 4207db96d56Sopenharmony_ci FILE_ATTRIBUTE_READONLY 4217db96d56Sopenharmony_ci FILE_ATTRIBUTE_REPARSE_POINT 4227db96d56Sopenharmony_ci FILE_ATTRIBUTE_SPARSE_FILE 4237db96d56Sopenharmony_ci FILE_ATTRIBUTE_SYSTEM 4247db96d56Sopenharmony_ci FILE_ATTRIBUTE_TEMPORARY 4257db96d56Sopenharmony_ci FILE_ATTRIBUTE_VIRTUAL 4267db96d56Sopenharmony_ci 4277db96d56Sopenharmony_ci .. versionadded:: 3.5 4287db96d56Sopenharmony_ci 4297db96d56Sopenharmony_ciOn Windows, the following constants are available for comparing against the 4307db96d56Sopenharmony_ci``st_reparse_tag`` member returned by :func:`os.lstat`. These are well-known 4317db96d56Sopenharmony_ciconstants, but are not an exhaustive list. 4327db96d56Sopenharmony_ci 4337db96d56Sopenharmony_ci.. data:: IO_REPARSE_TAG_SYMLINK 4347db96d56Sopenharmony_ci IO_REPARSE_TAG_MOUNT_POINT 4357db96d56Sopenharmony_ci IO_REPARSE_TAG_APPEXECLINK 4367db96d56Sopenharmony_ci 4377db96d56Sopenharmony_ci .. versionadded:: 3.8 438