code: def load(self, filename):
          
          with open(filename, "r") as f:
              for lineno, line in enumerate(f, 1):
                  line = line.strip()
                  if (len(line) == 0) or (line[0] == "#"):
                      continue
                  try:
                      e = HostKeyEntry.from_line(line, lineno)
                  except SSHException:
                      continue
                  if e is not None:
                      _hostnames = e.hostnames
                      for h in _hostnames:
                          if self.check(h, e.key):
                              e.hostnames.remove(h)
                      if len(e.hostnames):
                          self._entries.append(e)
docs: Read a file of known SSH host keys, in the format used by OpenSSH.
          This type of file unfortunately doesn't exist on Windows, but on
          posix, it will usually be stored in
          ``os.path.expanduser("~/.ssh/known_hosts")``.
  
          If this method is called multiple times, the host keys are merged,
          not cleared.  So multiple calls to `load` will just call `add`,
          replacing any existing entries and adding new ones.
  
          :param str filename: name of the file to read host keys from
  
          :raises: ``IOError`` -- if there was an error reading the file