I think that "touch -m" works like this function, by using stat to get the atime, then setting an identical atime and new mtime with utime. def set_mtime(fn, mtime=None): if mtime is None: mtime = time.time() atime = os.stat(fn).st_atime os.utime(fn, (atime, mtime)) Jeff