code: def generate_ctrlpts2d_weights_file(file_in='', file_out='ctrlpts_weights.txt'):
      
      # Read control points
      ctrlpts2d, size_u, size_v = _read_ctrltps2d_file(file_in)
  
      # Divide control points by weight
      new_ctrlpts2d = generate_ctrlpts2d_weights(ctrlpts2d)
  
      # Save new control points
      _save_ctrlpts2d_file(new_ctrlpts2d, size_u, size_v, file_out)
docs: Generates unweighted control points from weighted ones in 2-D.
  
      #. Takes in 2-D control points list whose coordinates are organized like (x*w, y*w, z*w, w)
      #. Converts the input control points list into (x, y, z, w) format
      #. Saves the result to a file
  
      :param file_in: name of the input file (to be read)
      :type file_in: str
      :param file_out: name of the output file (to be saved)
      :type file_out: str
      :raises IOError: an error occurred reading or writing the file