code: def touch(path, 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(path, 'a'):
      os.utime(path, times)
docs: Equivalent of unix `touch path`.
  
      :API: public
  
      :path: 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.