J'ai un fichier texte avec; utilisé comme délimiteur. Le problème est qu'il a une certaine mise en forme de texte html, comme >
évidemment; Cela provoque des problèmes. Le fichier texte est volumineux et je n'ai pas de liste de ces chaînes html, il y a beaucoup d'exemples différents tels que $amp;
. Comment puis-je les supprimer tous en utilisant python. Le fichier contient une liste de noms, d'adresses, de numéros de téléphone et de quelques autres champs. Je cherche le moduleSupprimer le formatage html ">" du fichier texte en utilisant Python csv.reader
Répondre
La façon la plus rapide est probablement d'utiliser les sans-papiers, mais jusqu'à présent stable méthode unescape
dans HTMLParser:
import HTMLParser
s= HTMLParser.HTMLParser().unescape(s)
Notez ce sera nécessairement la sortie d'une chaîne Unicode, donc si vous avez des octets non-ASCII là vous devra d'abord s.decode(encoding)
.
+1 bonne hack rapide – whatnick
crap.html.remove (textfile) Jetez un oeil sur le code de here:
import re, htmlentitydefs
##
# Removes HTML or XML character references and entities from a text string.
#
# @param text The HTML (or XML) source text.
# @return The plain text, as a Unicode string, if necessary.
def unescape(text):
def fixup(m):
text = m.group(0)
if text[:2] == "&#":
# character reference
try:
if text[:3] == "&#x":
return unichr(int(text[3:-1], 16))
else:
return unichr(int(text[2:-1]))
except (ValueError, OverflowError):
pass
else:
# named entity
try:
text = unichr(htmlentitydefs.name2codepoint[text[1:-1]])
except KeyError:
pass
return text # leave as is
return re.sub("&#?\w+;", fixup, text)
Bien sûr, cela ne prend en charge les entités HTML. Vous pouvez avoir d'autres points-virgules dans le texte qui gâchent votre analyseur CSV. Mais je suppose que vous savez déjà que ...
MISE À JOUR: prise ajoutée pour possible OverflowError
.
je reçois une erreur /Users/cb/Dropbox/Marketing/Matériel Leads/formatleaddata.py dans removehtml (texte) 40 passe 41 congé de retour texte # tout comme ---> 42 re.sub de retour (» ?\w+; ", correctif, texte) /Library/Frameworks/Python.framework/Versions/5.1.0/lib/python2.5/re.pyc dans sub (modèle, repl, chaîne, nombre) 148 si un appelable, c'est passé l'objet de correspondance et doit renvoyer 149 une chaîne de remplacement à utiliser. "" " -> 150 return _compile (motif, 0) .sub (repl, chaîne, nombre) 152 def subn (motif, repl, chaîne , count = 0): – Vincent
C'est tout à fait une bouchée, et ce n'est pas clair pour moi quelle est l'erreur. Type de xception? Peut-être que vous devriez essayer de publier vos détails d'exception dans une réponse séparée, juste pour que nous puissions mettre en forme correctement. – itsadok
Sur la plupart des systèmes Unix (y compris Mac OS X), vous pouvez recoder le fichier texte d'entrée avec:
recode html.. file_with_html.txt
Cette remplace & gt; par ">", etc.
Vous pouvez appeler ceci via le module de sous-processus de Python, par exemple.
- 1. Analyse du fichier texte en python
- 2. conversion html en texte en utilisant le langage python
- 3. Formatage du texte Zend_PDF
- 4. C++: Supprimer tout le formatage HTML de la chaîne?
- 5. Python: Problème simple de formatage de fichier
- 6. impression "<html>" en utilisant html
- 7. Supprimer/dans un fichier texte en utilisant le script DOS
- 8. Supprimer les tags spéciaux non HTML à partir du texte
- 9. modifier le texte du lien en HTML en utilisant JavaScript
- 10. Supprimer la ligne du tableau HTML en utilisant le Javascript
- 11. Supprimer HTML supprimer l'aligment en utilisant Java
- 12. Supprimer toutes les balises HTML et le formatage (RegEx)
- 13. C# Lire le formatage du texte?
- 14. Supprimer le contenu du widget texte en utilisant perl_tk
- 15. supprimer tout le formatage HTML à partir d'une chaîne
- 16. Convertir du HTML en texte brut en utilisant C++
- 17. analyse du fichier texte en utilisant java
- 18. Obtenir le chemin du fichier téléchargé en utilisant Python
- 19. Séparer les mots dans le texte courant en utilisant Python?
- 20. Meilleur moyen de convertir du HTML en texte brut en utilisant Python
- 21. aide pour supprimer des éléments d'un fichier texte en utilisant python
- 22. Comment charger du texte en html en utilisant le pack Html Agility
- 23. Obtenir le texte d'un <th> en utilisant C#
- 24. Conversion fichier texte en html
- 25. Comment supprimer des balises d'une chaîne en python en utilisant des expressions régulières? (PAS en HTML)
- 26. Supprimer le texte du texte copié
- 27. supprimer le contenu après</html> en utilisant dreamweaver trouver et remplacer
- 28. Suppression des balises html d'un texte en utilisant l'expression régulière en python
- 29. Xml au texte avec le formatage
- 30. Analyse de fichiers texte en utilisant Python
Il sera principalement composé de &, <, >. Ne va-t-il pas seulement trouver et remplacer suffisamment? Peut-être que vous pouvez créer une liste de tuples http://htmlhelp.com/reference/html40/entities/special.html et utiliser une fonction lambda pour trouver le remplacer dans votre fichier. – Jaskirat