Concatenate


Script permettant de concaténer les fichiers txt et xml.

In [ ]:
import os

# on crée un nouveau fichier
f = open('complet.txt', 'w', encoding='utf8', newline='\n')

# on parcourt le répertoire de sortie
for root, dirs, names in os.walk('SORTIE_V10'):
    for name in names:
        # on prend tous les fichiers txt
        if name.endswith('.txt'):
            #on récupère le chemin
            filepath = os.path.join(root, name)
            # on lit le contenu du fichier
            with open(filepath, 'r', encoding='utf8', newline='\n') as fichier:
                contenu = fichier.read()

            # on écrit le contenu dans le nouveau fichier
            f.write(contenu)
        
# on ferme le fichier
f.close()
In [ ]:
# on ouvre un nouveau fichier
f = open('complet.xml', 'w', encoding='utf8', newline='\n')

# on initialise le xml
# vu qu'on va fusionner plusieurs fichiers, on crée un nouveau élément racine <corpus> pour encadrer tous les fichiers
f.write('<?xml version="1.0" encoding="UTF8"?>\n<corpus>\n')

# on parcourt le répertoire de sortie
for root, dirs, names in os.walk('SORTIE_V10'):
    for name in names:
        # pour chaque fichier xml
        if name.endswith('.xml'):
            # on récupère le chemin
            filepath = os.path.join(root, name)
            # on lit le contenu, mais cette fois ligne par ligne
            with open(filepath, 'r', encoding='utf8', newline='\n') as fichier:
                contenu = fichier.readlines()
            
            # on enlève la première ligne qui est la balise de déclaration <?xml>
            contenu.pop(0)
            
            # on écrit le reste du contenu dans le nouveau fichier
            new_contenu = ''.join(contenu)
            f.write(new_contenu)
        
# on ferme la balise <corpus> et on ferme le fichier
f.write('</corpus>')
f.close()