code: def touch(file, times=None):
    
    if times:
      if len(times) > 2:
        raise ValueError('times must either be a tuple of (atime, mtime) or else a single time value '
                         'to use for both.')
  
      if len(times) == 1:
        times = (times, times)
  
    with safe_open(file, 'a'):
      os.utime(file, times)
docs: Equivalent of unix `touch path`.
  
    :file The file to touch.
    :times Either a tuple of (atime, mtime) or else a single time to use for both.  If not
    specified both atime and mtime are updated to the current time.