def file_create(record_type, parametres):
    """
    Création du fichier en sortie : XML, iso2709 ou tabulé
    """
    file = object
    id_filename = "-".join([parametres["outputID"], record_type])
    if (parametres["format_file"] == 3):
        filename = id_filename + ".txt"
        file = open(filename, "w", encoding="utf-8")
        headers = ["Numéro de notice", "Type de notice"
                   ] + parametres["select_fields"].split(";")
        funcs.line2report(headers, file, display=False)
    elif (parametres["format_file"] == 2):
        output_encoding = "utf-8"
        if ("xml_encoding_option" in parametres):
            output_encoding = parametres["xml_encoding_option"]
        filename = id_filename + ".xml"

        file = open(filename, "w", encoding=output_encoding)

        file.write(f"<?xml version='1.0' encoding='{output_encoding}'?>\n")
        file.write("<collection>")
    else:
        filename = id_filename + ".iso2709"
        file = mc.MARCWriter(open(filename, "wb"))
    return file
def record2file(identifier, XMLrec, file, format_file, parametres, dict_files):
    """
    Conversion de la notice XML trouvée en ligne 
    -> incrémentation dans le fichier en sortie
    Si option cochée, réécriture de la notice
    "identifier" est une instance de la classe Id4record
    """
    #Si fichier tabulé
    if (format_file == 3):
        doctype, recordtype, entity_type = sru.extract_docrecordtype(
            XMLrec, "marc")
        line = [identifier.NumNot, doctype + recordtype]
        for field in parametres["select_fields"].split(";"):
            value = sru.record2fieldvalue(XMLrec, field)
            line.append(value)
        funcs.line2report(line, dict_files["bib_file"], display=False)
    # Si sortie en iso2709
    elif (format_file == 1):
        XMLrec_str = XMLrecord2string(identifier, XMLrec, parametres)
        filename_temp = XMLrec2isorecord(XMLrec_str)
        collection = mc.marcxml.parse_xml_to_array(filename_temp, strict=False)
        # collection.force_utf8 = True
        for record in collection:
            record.force_utf8 = True
            try:
                file.write(record)
            except UnicodeEncodeError as err:
                errors_list.append([XMLrec_str, str(err)])
        try:
            os.remove(filename_temp)
        except FileNotFoundError:
            pass
    # si sortie en XML
    if (format_file == 2):
        record = XMLrecord2string(identifier, XMLrec, parametres)
        file.write(record)