ref: a944c37d68b3742ae5156cec3bd23f64ad5c7a1b
dir: /sys/src/cmd/python/Doc/lib/libdircache.tex/
\section{\module{dircache} --- Cached directory listings} \declaremodule{standard}{dircache} \sectionauthor{Moshe Zadka}{moshez@zadka.site.co.il} \modulesynopsis{Return directory listing, with cache mechanism.} The \module{dircache} module defines a function for reading directory listing using a cache, and cache invalidation using the \var{mtime} of the directory. Additionally, it defines a function to annotate directories by appending a slash. The \module{dircache} module defines the following functions: \begin{funcdesc}{reset}{} Resets the directory cache. \end{funcdesc} \begin{funcdesc}{listdir}{path} Return a directory listing of \var{path}, as gotten from \function{os.listdir()}. Note that unless \var{path} changes, further call to \function{listdir()} will not re-read the directory structure. Note that the list returned should be regarded as read-only. (Perhaps a future version should change it to return a tuple?) \end{funcdesc} \begin{funcdesc}{opendir}{path} Same as \function{listdir()}. Defined for backwards compatibility. \end{funcdesc} \begin{funcdesc}{annotate}{head, list} Assume \var{list} is a list of paths relative to \var{head}, and append, in place, a \character{/} to each path which points to a directory. \end{funcdesc} \begin{verbatim} >>> import dircache >>> a = dircache.listdir('/') >>> a = a[:] # Copy the return value so we can change 'a' >>> a ['bin', 'boot', 'cdrom', 'dev', 'etc', 'floppy', 'home', 'initrd', 'lib', 'lost+ found', 'mnt', 'proc', 'root', 'sbin', 'tmp', 'usr', 'var', 'vmlinuz'] >>> dircache.annotate('/', a) >>> a ['bin/', 'boot/', 'cdrom/', 'dev/', 'etc/', 'floppy/', 'home/', 'initrd/', 'lib/ ', 'lost+found/', 'mnt/', 'proc/', 'root/', 'sbin/', 'tmp/', 'usr/', 'var/', 'vm linuz'] \end{verbatim}