How to access file last modified dates on each file in a directory

Fredrik Lundh fredrik at pythonware.com
Mon Oct 30 07:40:32 CET 2006


RAMohrmann at adelphia.net wrote:

> I am attempting to view all files in a directory and if those files
> have not been modified within the last couple days I will remove them.
> In order to do this I need to look at the file date modied and check
> the date. I know how to look at each file name and I know how to remove
> the file. I just can't figure out how to get access to the date last
> modifed filed. Below is how I intend to access the file names in the
> directory.
> 
>>>> import os,time,sys
>>>> cachedirectory="c:\\informatica\\cache\\"
>>>> v_filename_array=os.listdir(cachedirectory)

since listdir only returns the last part of the full file path, it's 
often easier to use glob.

     for file in glob.glob("c:/informatics/cache/*"):
         ...

otherwise, you need to do os.path.join(cachedirectory, file) for each 
file in the filename list, to get a full path.

to get the age of a file, use os.path.getmtime(filename).  this returns 
the modification time as seconds since a reference time (usually called 
the "epoch".  if you subtract this time from the current time, you get 
the age (in seconds):

     import glob, os, time

     now = time.time()

     for file in glob.glob("c:/informatics/cache/*"):
         age = os.path.gettime(file) - now
         print file, "is", age / 3600, "hours old"

adding code to remove old files should be straightforward.

</F>




More information about the Python-list mailing list