Hallo,
ich bin neu by python und ich will in verschiedenen html Seiten besondere Zeichen wie zB á à é è í ñ ¡ ¿ mit den entsprechenden html Symbole ersaetzen. Das heisst, zB in allen html Files
á ---> á
à ---> à
usw. Ich habe ein kleines script mit sed Befehlen geschrieben aber es
kann nicht alle finden (er schafft etwa 60%, je nach dem Wort)
Also es geht darum, in den Files 1.html, 2.html, 3.html .... Sachen wie
zB folgende zu machen
és un aixó diferent d'açò però no d'alló ---> ès un això
diferent d'a¸o peró no d'allò
Ich glaube, das ist mit Python einfach aber ich habe erst vor wei Tagen
angefangen, die Sprache zu lernen...
search und replace??
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Eine Liste aller HTML-Dateien könntest du so erhalten:
Für das ändern von Dateien ist http://www.python-forum.de/viewtopic.php?t=3483 interessant.
Zum "konvertieren" könntest du einfach mit .replace() arbeiten:
Code: Alles auswählen
import os, glob
print "lese...",
file_list = []
for root, folderlist, filelist in os.walk( "c:\\" ):
file_list += glob.glob( os.path.join( root, "*.html" ) )
print "OK"
for filename in file_list:
print filename
Zum "konvertieren" könntest du einfach mit .replace() arbeiten:
Code: Alles auswählen
rules = [
("á", "á"),
("à", "à")
]
for rule in rules:
content = content.replace( rule[0], rule[1] )
Eine Liste der HTML-Enities für den Latin-1 Zeichensatz kann man sich aus dem Modul 'htmlentitydefs' holen. Das muss man dann nur noch für jens seine Schleife ein wenig aufbereiten:
Code: Alles auswählen
# -*- encoding: utf-8 -*-
from htmlentitydefs import entitydefs
#
# Make a replacement list from the latin-1 HTML entities.
#
replacements = [(char.decode('latin-1'), '&%s;' % entity)
for (entity, char) in entitydefs.iteritems()
if len(char) == 1]
test = "és un aixó diferent d'açò però no d'alló".decode('utf-8')
for char, entity in replacements:
test = test.replace(char, entity)
print test
Hi,
Danke... Am Ende musste ich eine Mischung aus mozilla composer + doch sed benutzen, weil die Seiten sehr dringend "veröffentlicht" werden mussten...
Schade... ich wollte es doch mit python machen aber mir war unklar, wie ich Eure codes zusammenbringen hätte sollen...
Ich bin sicher, es wäre viel schneller und eleganter mit python gewesen...
Danke nochmal,
Pau
Danke... Am Ende musste ich eine Mischung aus mozilla composer + doch sed benutzen, weil die Seiten sehr dringend "veröffentlicht" werden mussten...
Schade... ich wollte es doch mit python machen aber mir war unklar, wie ich Eure codes zusammenbringen hätte sollen...
Ich bin sicher, es wäre viel schneller und eleganter mit python gewesen...
Danke nochmal,
Pau