code: def write_odf(df, file_path, headers=None):
      
      if headers is None and hasattr(df, 'headers'):
          headers = df.headers
      else:
          raise AttributeError('ODF headers not provided')
  
      with open(file_path, 'w') as file:
          file.write(_header_dict_to_str(headers))
          df.to_csv(file, sep='\t', header=False, index=False, mode='w+')
docs: Writes the provided DataFrame to a ODF file.
  
      Assumes that the DataFrame matches the structure of those produced
      by the ODF() function in this library
  
      :param df: the DataFrame to write to ODF
      :param file_path: path to which to write the ODF file
      :param headers: A dict of ODF headers, if none are provided will attempt to read them from the ODF file
      :return: