# cpython-withatomic / Doc / libstat.tex

  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 % By Skip Montanaro \section{Standard module \sectcode{stat}} \stmodindex{stat} The \code{stat} module defines constants and functions for interpreting the results of \code{os.stat} and \code{os.lstat} (if it exists). For complete details about the \code{stat} and \code{lstat} system calls, consult your local man pages. The \code{stat} module defines the following functions: \renewcommand{\indexsubitem}{(in module stat)} \begin{funcdesc}{S_ISDIR}{mode} Return non-zero if the mode was gotten from a directory file. \end{funcdesc} \begin{funcdesc}{S_ISCHR}{mode} Return non-zero if the mode was gotten from a character special device. \end{funcdesc} \begin{funcdesc}{S_ISREG}{mode} Return non-zero if the mode was gotten from a regular file. \end{funcdesc} \begin{funcdesc}{S_ISFIFO}{mode} Return non-zero if the mode was gotten from a FIFO. \end{funcdesc} \begin{funcdesc}{S_ISLNK}{mode} Return non-zero if the mode was gotten from a symbolic link. \end{funcdesc} \begin{funcdesc}{S_ISSOCK}{mode} Return non-zero if the mode was gotten from a socket. \end{funcdesc} All the data items below are simply symbolic indexes into the 10-tuple returned by \code{os.stat} or \code{os.lstat}. \begin{datadesc}{ST_MODE} Inode protection mode. \end{datadesc} \begin{datadesc}{ST_INO} Inode number. \end{datadesc} \begin{datadesc}{ST_DEV} Device inode resides on. \end{datadesc} \begin{datadesc}{ST_NLINK} Number of links to the inode. \end{datadesc} \begin{datadesc}{ST_UID} User id of the owner. \end{datadesc} \begin{datadesc}{ST_GID} Group id of the owner. \end{datadesc} \begin{datadesc}{ST_SIZE} File size in bytes. \end{datadesc} \begin{datadesc}{ST_ATIME} Time of last access. \end{datadesc} \begin{datadesc}{ST_MTIME} Time of last modification. \end{datadesc} \begin{datadesc}{ST_CTIME} Time of creation. \end{datadesc} Example: \bcode\begin{verbatim} import os, sys from stat import * def process(dir, func): '''recursively descend the directory rooted at dir, calling func for each regular file''' for f in os.listdir(dir): mode = os.stat('%s/%s' % (dir, f))[ST_MODE] if S_ISDIR(mode): # recurse into directory process('%s/%s' % (dir, f), func) elif S_ISREG(mode): func('%s/%s' % (dir, f)) else: print 'Skipping %s/%s' % (dir, f) def f(file): print 'frobbed', file if __name__ == '__main__': process(sys.argv[1], f) \end{verbatim}\ecode 
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.