code: def chunks(self, size, *args, **kwargs):
          
          with self.open(*args, **kwargs) as f:
              for chunk in iter(lambda: f.read(size) or None, None):
                  yield chunk
docs: Returns a generator yielding chunks of the file, so it can
              be read piece by piece with a simple for loop.
  
             Any argument you pass after `size` will be passed to :meth:`open`.
  
             :example:
  
                 >>> hash = hashlib.md5()
                 >>> for chunk in Path("CHANGES.rst").chunks(8192, mode='rb'):
                 ...     hash.update(chunk)
  
              This will read the file by chunks of 8192 bytes.