summaryrefslogtreecommitdiffstats
path: root/Doc/library/stat.rst
diff options
context:
space:
mode:
authorR David Murray <rdmurray@bitdance.com>2011-03-10 22:22:33 (GMT)
committerR David Murray <rdmurray@bitdance.com>2011-03-10 22:22:33 (GMT)
commit5647c473bc6561d2d1bc0423ac5c1caab2bcb44f (patch)
tree22dd45c7ab75daadd8115a123c13fc040758e183 /Doc/library/stat.rst
parentf2b5673f736be86212ebf185182310bb318740c6 (diff)
parent30178068d941ba3e42c6345d466576b0ca69d72c (diff)
downloadcpython-5647c473bc6561d2d1bc0423ac5c1caab2bcb44f.zip
cpython-5647c473bc6561d2d1bc0423ac5c1caab2bcb44f.tar.gz
cpython-5647c473bc6561d2d1bc0423ac5c1caab2bcb44f.tar.bz2
Merge #10999 fix.
Diffstat (limited to 'Doc/library/stat.rst')
-rw-r--r--Doc/library/stat.rst88
1 files changed, 66 insertions, 22 deletions
diff --git a/Doc/library/stat.rst b/Doc/library/stat.rst
index d8a27af..cc879de 100644
--- a/Doc/library/stat.rst
+++ b/Doc/library/stat.rst
@@ -76,6 +76,34 @@ 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.
+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)
+ mode = os.stat(pathname)[ST_MODE]
+ 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)
+
All the variables below are simply symbolic indexes into the 10-tuple returned
by :func:`os.stat`, :func:`os.fstat` or :func:`os.lstat`.
@@ -265,31 +293,47 @@ The following flags can also be used in the *mode* argument of :func:`os.chmod`:
Unix V7 synonym for :data:`S_IXUSR`.
-Example::
+The following flags can be used in the *flags* argument of :func:`os.chflags`:
- import os, sys
- from stat import *
+.. data:: UF_NODUMP
- def walktree(top, callback):
- '''recursively descend the directory tree rooted at top,
- calling the callback function for each regular file'''
+ Do not dump the file.
- for f in os.listdir(top):
- pathname = os.path.join(top, f)
- mode = os.stat(pathname)[ST_MODE]
- 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)
+.. data:: UF_IMMUTABLE
- def visitfile(file):
- print('visiting', file)
+ The file may not be changed.
- if __name__ == '__main__':
- walktree(sys.argv[1], visitfile)
+.. data:: UF_APPEND
+
+ The file may only be appended to.
+
+.. data:: UF_OPAQUE
+
+ The file may not be renamed or deleted.
+
+.. data:: UF_NOUNLINK
+
+ The directory is opaque when viewed through a union stack.
+
+.. 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.