code: def load(self, shapefile=None):
          
          if shapefile:
              (shapeName, ext) = os.path.splitext(shapefile)
              self.shapeName = shapeName
              self.load_shp(shapeName)
              self.load_shx(shapeName)
              self.load_dbf(shapeName)
              if not (self.shp or self.dbf):
                  raise ShapefileException("Unable to open %s.dbf or %s.shp." % (shapeName, shapeName))
          if self.shp:
              self.__shpHeader()
          if self.dbf:
              self.__dbfHeader()
docs: Opens a shapefile from a filename or file-like
          object. Normally this method would be called by the
          constructor with the file name as an argument.