Parcourir un répertoire
clarapchd
-
critou -
critou -
Bonjour,
Dans le cadre d'un projet je dois :
parcourir un dossier contenant plusieurs fichiers HTML
Lire ces fichiers
Ecrire le contenu textuel ( code source, ou texte ) dans un seul fichier de sortie
J'ai reussi a le faire en Perl mais je ne sais pas du tout comment le faire en python
Quelqu'un serait en mesure de m'aider ?
Merci beaucoup!!!
Clara
Dans le cadre d'un projet je dois :
parcourir un dossier contenant plusieurs fichiers HTML
Lire ces fichiers
Ecrire le contenu textuel ( code source, ou texte ) dans un seul fichier de sortie
J'ai reussi a le faire en Perl mais je ne sais pas du tout comment le faire en python
Quelqu'un serait en mesure de m'aider ?
Merci beaucoup!!!
Clara
A voir également:
- Parcourir un répertoire
- Répertoire téléphonique gratuit - Télécharger - Bureautique
- Pourquoi certains contacts disparaissent de mon répertoire - Accueil - Guide Android
- Commande dos copy repertoire et sous repertoire - Forum Logiciels
- Mon répertoire - Forum iPhone
- Répertoire démarrage windows 11 - Guide
1 réponse
yg_be
Messages postés
24281
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 585
bonsoir, as-tu commencé un code python? où bloques-tu?
import os import re for dossier, sous_dossiers, fichiers in os.walk('/Users/claraponchard/algo'): for fichier in fichiers: if fichier.endswith('.html'): texthtml = open(fichier).read() remplacement_balise = remplacement_balises_para(texthtml) suppression_du_titre = suppression_titre(remplacement_balise) texte_sans_balise = enleverbalise(suppression_du_titre) s = texte_sans_balise.encode('utf-8') f = open('texte_sans_balise.txt','wb') f.write(s) def remplacement_balises_para(texteoriginal): para = re.compile('</p>') cleanpara = re.sub(para, '§\n\n', texteoriginal) titre = re.compile('<title>(.*?)</title>') cleantitre = re.sub(titre, '', texteoriginal) return cleanpara #return cleanpara def suppression_titre(texteoriginal): titre = re.compile('<title>(.*?)</title>') cleantitre = re.sub(titre, '', texteoriginal) return cleantitre def enleverbalise(texteoriginal): #n'importe quel caractère autant de fois qu'on veut ou pas #fonct compile du module re permet de construire un objet « expression régulière » #A partir de cet objet, vérifier la correspondance entre une expression régulière et une chaîne de caractère cleanr = re.compile('<.*?>') cleantext = re.sub(cleanr, '', texteoriginal) #remplacer une expression régulière par une chaîne de caractères : ici le vide return cleantextSi le but est de copier tous les textes de tes fichiers html dans un fichier texte, alors le mode :
f = open('texte_sans_balise.txt','wb')Est incorrect, car tu écrases chaque fois ton fichier, et c'est donc le dernier, et non le premier qui écrasera le tout.
C'est donc en mode 'append' que dois ouvrir ton fichier 'ab' et non 'wb'.
Remarque, qu'au final, ce serait plus simple de n'ouvrir qu'une seule fois ton fichier et conserver le mode w.