Exemplo n.º 1
0
def is_newer_than(filename, timespec):
    """ Check if a file is newer than a given time. Timestamps
    can be specified absolute or relative.

    >>> import os, time
    >>> f=os.tmpnam()
    >>> open(f,'w').write('test')
    >>> time.sleep(2)
    >>> is_newer_than(f, '1 year')
    True
    >>> is_newer_than(f, '1 month')
    True
    >>> is_newer_than(f, '1 week')
    True
    >>> is_newer_than(f, '2 weeks')
    True
    >>> is_newer_than(f, '1 day')
    True
    >>> is_newer_than(f, '10 days')
    True
    >>> is_newer_than(f, '1 hour')
    True
    >>> is_newer_than(f, '5 hour')
    True
    >>> is_newer_than(f, '1 minute')
    True
    >>> is_newer_than(f, '1 second')
    False
    >>> is_newer_than(f, datetime.datetime.now())
    False
    
    """

    # Get modified time
    mtime = datetime.datetime.fromtimestamp(os.path.getmtime(filename))

    # Direct date time object passed ?
    if isinstance(timespec, datetime.datetime):
        return (mtime > timespec)

    # Try parsing as relative time
    delta = relativetime.parse_relative_time(timespec)
    if delta == None:
        raise error("Invalid timespec passed")

    return (mtime > datetime.datetime.now() - delta)
Exemplo n.º 2
0
def is_accessed_before(filename, timespec):
    """ Check if a file is accessed before a given time. Timestamps
    can be specified absolute or relative.

    >>> import time
    >>> f = 'osutils.py'    
    >>> time.sleep(2)
    >>> is_accessed_before(f, '1 year')
    False
    >>> is_accessed_before(f, '1 month')
    False
    >>> is_accessed_before(f, '1 week')
    False
    >>> is_accessed_before(f, '2 weeks')
    False
    >>> is_accessed_before(f, '1 day')
    False
    >>> is_accessed_before(f, '10 days')
    False
    >>> is_accessed_before(f, '1 hour')
    False
    >>> is_accessed_before(f, '5 hour')
    False
    >>> is_accessed_before(f, '1 minute')
    False
    >>> is_accessed_before(f, '1 second')
    True
    >>> is_accessed_before(f, datetime.datetime.now())
    True

    """

    # Get accessed time
    atime = datetime.datetime.fromtimestamp(os.path.getatime(filename))

    # Direct date time object passed ?
    if isinstance(timespec, datetime.datetime):
        return (atime < timespec)

    # Try parsing as relative time
    delta = relativetime.parse_relative_time(timespec)
    if delta == None:
        raise error("Invalid timespec passed")

    return (atime < datetime.datetime.now() - delta)