blob: 58845493b48c6d923a01fbf3133c0200344dd1d7 [file] [log] [blame]
Fred Drake64bc94e1999-06-17 15:11:35 +00001\section{\module{dircache} ---
2 Cached directory listings}
3
4\declaremodule{standard}{dircache}
Fred Drake57657bc2000-12-01 15:25:23 +00005\sectionauthor{Moshe Zadka}{moshez@zadka.site.co.il}
Fred Drake64bc94e1999-06-17 15:11:35 +00006\modulesynopsis{Return directory listing, with cache mechanism.}
7
8The \module{dircache} module defines a function for reading directory listing
9using a cache, and cache invalidation using the \var{mtime} of the directory.
10Additionally, it defines a function to annotate directories by appending
11a slash.
12
13The \module{dircache} module defines the following functions:
14
Skip Montanaro4f49e7d2005-01-05 07:03:53 +000015\begin{funcdesc}{reset}{}
16Resets the directory cache.
17\end{funcdesc}
18
Fred Drake64bc94e1999-06-17 15:11:35 +000019\begin{funcdesc}{listdir}{path}
20Return a directory listing of \var{path}, as gotten from
21\function{os.listdir()}. Note that unless \var{path} changes, further call
22to \function{listdir()} will not re-read the directory structure.
23
24Note that the list returned should be regarded as read-only. (Perhaps
25a future version should change it to return a tuple?)
26\end{funcdesc}
27
28\begin{funcdesc}{opendir}{path}
Thomas Woutersf8316632000-07-16 19:01:10 +000029Same as \function{listdir()}. Defined for backwards compatibility.
Fred Drake64bc94e1999-06-17 15:11:35 +000030\end{funcdesc}
31
32\begin{funcdesc}{annotate}{head, list}
Fred Drake6cf186b1999-10-29 17:51:29 +000033Assume \var{list} is a list of paths relative to \var{head}, and append,
Fred Drake64bc94e1999-06-17 15:11:35 +000034in place, a \character{/} to each path which points to a directory.
35\end{funcdesc}
36
37\begin{verbatim}
38>>> import dircache
Fred Drakea1805812003-12-31 07:41:52 +000039>>> a = dircache.listdir('/')
40>>> a = a[:] # Copy the return value so we can change 'a'
Fred Drake64bc94e1999-06-17 15:11:35 +000041>>> a
42['bin', 'boot', 'cdrom', 'dev', 'etc', 'floppy', 'home', 'initrd', 'lib', 'lost+
43found', 'mnt', 'proc', 'root', 'sbin', 'tmp', 'usr', 'var', 'vmlinuz']
44>>> dircache.annotate('/', a)
45>>> a
46['bin/', 'boot/', 'cdrom/', 'dev/', 'etc/', 'floppy/', 'home/', 'initrd/', 'lib/
47', 'lost+found/', 'mnt/', 'proc/', 'root/', 'sbin/', 'tmp/', 'usr/', 'var/', 'vm
48linuz']
49\end{verbatim}