<!DOCTYPE html PUBLIC
"-//W3C//DTD HTML 4.0 Transitional//EN">
<link rel=
"STYLESHEET" href=
"lib.css" type='text/css'
/>
<link rel=
"SHORTCUT ICON" href=
"../icons/pyfav.png" type=
"image/png" />
<link rel='start' href='../index.html' title='Python Documentation Index'
/>
<link rel=
"first" href=
"lib.html" title='Python Library Reference'
/>
<link rel='contents' href='contents.html'
title=
"Contents" />
<link rel='index' href='genindex.html' title='Index'
/>
<link rel='last' href='about.html' title='About this document...'
/>
<link rel='help' href='about.html' title='About this document...'
/>
<link rel=
"next" href=
"module-statvfs.html" />
<link rel=
"prev" href=
"module-stat.html" />
<link rel=
"parent" href=
"allos.html" />
<link rel=
"next" href=
"module-statvfs.html" />
<meta name='aesop' content='information'
/>
<title>6.5 statcache -- An optimization of os.stat()
</title>
<div id='top-navigation-panel' xml:id='top-navigation-panel'
>
<table align=
"center" width=
"100%" cellpadding=
"0" cellspacing=
"2">
<td class='online-navigation'
><a rel=
"prev" title=
"6.4 stat "
href=
"module-stat.html"><img src='../icons/previous.png'
border='
0' height='
32' alt='Previous Page' width='
32'
/></A></td>
<td class='online-navigation'
><a rel=
"parent" title=
"6. Generic Operating System"
href=
"allos.html"><img src='../icons/up.png'
border='
0' height='
32' alt='Up One Level' width='
32'
/></A></td>
<td class='online-navigation'
><a rel=
"next" title=
"6.6 statvfs "
href=
"module-statvfs.html"><img src='../icons/next.png'
border='
0' height='
32' alt='Next Page' width='
32'
/></A></td>
<td align=
"center" width=
"100%">Python Library Reference
</td>
<td class='online-navigation'
><a rel=
"contents" title=
"Table of Contents"
href=
"contents.html"><img src='../icons/contents.png'
border='
0' height='
32' alt='Contents' width='
32'
/></A></td>
<td class='online-navigation'
><a href=
"modindex.html" title=
"Module Index"><img src='../icons/modules.png'
border='
0' height='
32' alt='Module Index' width='
32'
/></a></td>
<td class='online-navigation'
><a rel=
"index" title=
"Index"
href=
"genindex.html"><img src='../icons/index.png'
border='
0' height='
32' alt='Index' width='
32'
/></A></td>
<div class='online-navigation'
>
<b class=
"navlabel">Previous:
</b>
<a class=
"sectref" rel=
"prev" href=
"module-stat.html">6.4 stat
</A>
<b class=
"navlabel">Up:
</b>
<a class=
"sectref" rel=
"parent" href=
"allos.html">6. Generic Operating System
</A>
<b class=
"navlabel">Next:
</b>
<a class=
"sectref" rel=
"next" href=
"module-statvfs.html">6.6 statvfs
</A>
<!--End of Navigation Panel-->
<H1><A NAME=
"SECTION008500000000000000000">
6.5 <tt class=
"module">statcache
</tt> --
An optimization of
<tt class=
"function">os.stat()
</tt></A>
<A NAME=
"module-statcache"></A>
<div class=
"versionnote"><b>Deprecated since release
2.2.
</b>
Use
<tt class=
"function"><tt class=
"module"><a href=
"module-os.html">os
</a></tt>.stat()
</tt> directly instead
of using the cache; the cache introduces a very high level of
fragility in applications using it and complicates application code
with the addition of cache management support.
</div><p></p>
The
<tt class=
"module">statcache
</tt> module provides a simple optimization to
<tt class=
"function">os.stat()
</tt>: remembering the values of previous invocations.
The
<tt class=
"module">statcache
</tt> module defines the following functions:
<dl><dt><table cellpadding=
"0" cellspacing=
"0"><tr valign=
"baseline">
<td><nobr><b><tt id='l2h-
1796' xml:id='l2h-
1796'
class=
"function">stat
</tt></b>(
</nobr></td>
<td><var>path
</var>)
</td></tr></table></dt>
This is the main module entry-point.
Identical for
<tt class=
"function">os.stat()
</tt>, except for remembering the result
for future invocations of the function.
The rest of the functions are used to clear the cache, or parts of
<dl><dt><table cellpadding=
"0" cellspacing=
"0"><tr valign=
"baseline">
<td><nobr><b><tt id='l2h-
1797' xml:id='l2h-
1797'
class=
"function">reset
</tt></b>(
</nobr></td>
<td><var></var>)
</td></tr></table></dt>
Clear the cache: forget all results of previous
<tt class=
"function">stat()
</tt>
<dl><dt><table cellpadding=
"0" cellspacing=
"0"><tr valign=
"baseline">
<td><nobr><b><tt id='l2h-
1798' xml:id='l2h-
1798'
class=
"function">forget
</tt></b>(
</nobr></td>
<td><var>path
</var>)
</td></tr></table></dt>
Forget the result of
<code>stat(
<var>path
</var>)
</code>, if any.
<dl><dt><table cellpadding=
"0" cellspacing=
"0"><tr valign=
"baseline">
<td><nobr><b><tt id='l2h-
1799' xml:id='l2h-
1799'
class=
"function">forget_prefix
</tt></b>(
</nobr></td>
<td><var>prefix
</var>)
</td></tr></table></dt>
Forget all results of
<code>stat(
<var>path
</var>)
</code> for
<var>path
</var> starting
<dl><dt><table cellpadding=
"0" cellspacing=
"0"><tr valign=
"baseline">
<td><nobr><b><tt id='l2h-
1800' xml:id='l2h-
1800'
class=
"function">forget_dir
</tt></b>(
</nobr></td>
<td><var>prefix
</var>)
</td></tr></table></dt>
Forget all results of
<code>stat(
<var>path
</var>)
</code> for
<var>path
</var> a file in
the directory
<var>prefix
</var>, including
<code>stat(
<var>prefix
</var>)
</code>.
<dl><dt><table cellpadding=
"0" cellspacing=
"0"><tr valign=
"baseline">
<td><nobr><b><tt id='l2h-
1801' xml:id='l2h-
1801'
class=
"function">forget_except_prefix
</tt></b>(
</nobr></td>
<td><var>prefix
</var>)
</td></tr></table></dt>
Similar to
<tt class=
"function">forget_prefix()
</tt>, but for all
<var>path
</var> values
<em>not
</em> starting with
<var>prefix
</var>.
<div class=
"verbatim"><pre>
>>> import os, statcache
>>> statcache.stat('.')
(
16893,
2049,
772,
18,
1000,
1000,
2048,
929609777,
929609777,
929609777)
>>> os.stat('.')
(
16893,
2049,
772,
18,
1000,
1000,
2048,
929609777,
929609777,
929609777)
<div class='online-navigation'
>
<table align=
"center" width=
"100%" cellpadding=
"0" cellspacing=
"2">
<td class='online-navigation'
><a rel=
"prev" title=
"6.4 stat "
href=
"module-stat.html"><img src='../icons/previous.png'
border='
0' height='
32' alt='Previous Page' width='
32'
/></A></td>
<td class='online-navigation'
><a rel=
"parent" title=
"6. Generic Operating System"
href=
"allos.html"><img src='../icons/up.png'
border='
0' height='
32' alt='Up One Level' width='
32'
/></A></td>
<td class='online-navigation'
><a rel=
"next" title=
"6.6 statvfs "
href=
"module-statvfs.html"><img src='../icons/next.png'
border='
0' height='
32' alt='Next Page' width='
32'
/></A></td>
<td align=
"center" width=
"100%">Python Library Reference
</td>
<td class='online-navigation'
><a rel=
"contents" title=
"Table of Contents"
href=
"contents.html"><img src='../icons/contents.png'
border='
0' height='
32' alt='Contents' width='
32'
/></A></td>
<td class='online-navigation'
><a href=
"modindex.html" title=
"Module Index"><img src='../icons/modules.png'
border='
0' height='
32' alt='Module Index' width='
32'
/></a></td>
<td class='online-navigation'
><a rel=
"index" title=
"Index"
href=
"genindex.html"><img src='../icons/index.png'
border='
0' height='
32' alt='Index' width='
32'
/></A></td>
<div class='online-navigation'
>
<b class=
"navlabel">Previous:
</b>
<a class=
"sectref" rel=
"prev" href=
"module-stat.html">6.4 stat
</A>
<b class=
"navlabel">Up:
</b>
<a class=
"sectref" rel=
"parent" href=
"allos.html">6. Generic Operating System
</A>
<b class=
"navlabel">Next:
</b>
<a class=
"sectref" rel=
"next" href=
"module-statvfs.html">6.6 statvfs
</A>
<span class=
"release-info">Release
2.4.2, documentation updated on
28 September
2005.
</span>
<!--End of Navigation Panel-->
See
<i><a href=
"about.html">About this document...
</a></i> for information on suggesting changes.