Python – Traitement de plusieurs fichiers d’URLS

Alors bon, pour le coup, je fais probablement les choses à l’envers. Dans la version bash, on traite tous les fichiers urls en une seule exécution du script. Au stade où en est le script python, il ne traite qu’un seul fichier à la fois. La raison est très simple : je n’ai pas réussi à insérer ma première boucle for (qui parcourt les lignes du fichier) dans une autre boucle for (qui parcourt le contenu du dossier ‘URLS’).

Pour que tous les fichiers puissent être traités en une seule exécution du script, c’est pourtant nécessaire, à priori. J’imagine bien la petite subtilité en fait très simple, que j’ai cherchée pendant des semaines sans finir par la trouver.

Alors j’ai décidé de faire autrement. J’ai transformé ce qui était le script complet en une fonction :

fonction

La fonction est donc analyse() et elle prend un argument ‘fichier’, qui correspond à un des fichiers du dossier d’URLS. On ne traite encore qu’un seul fichier, me direz-vous. Eh bien non. Regardez pourquoi :

fonction2

On invite l’utilisateur à indiquer le chemin pour joindre son dossier d’URLS. Grâce à la fonction listdir() du module os, qui permet de gérer les fichiers et répertoires sous python, on obtient une liste donc chaque élément est un des fichiers du dossier.

Et c’est donc là que je place la fameuse boucle for qui me manquait : pour chaque élément de la liste de fichiers, pour chaque fichier donc, on applique le l’analyse. On note au passage la déclaration du compteur j, qui s’incrémente à chaque fois qu’un fichier est traité. C’est ce qui permet d’avoir un fichier global de contexte par langue, et que chaque fichier global ait un nom différent.

On ouvre chaque fichier d’urls en spécifiant le chemin d’après ce que l’utilisateur a renseigné,  et on transforme son contenu en liste d’urls.

On stocke les résulats dans un tableau écrit dans une page html. Comme pour les fichiers de contexte, il y a un fichier de résultat par langue.

Python – Traitement de plusieurs fichiers d’URLS

Laisser un commentaire