Guten Tag danke für die Antwort
Sorry ich dachte das sei nicht so wichtig der HTMLParser macht nichts
anderes als eben das Attribut des img-tags um text erweitern...
Und das sieht so aus :
class aHTMLParser(HTMLParser):
res = ""
def handle_starttag(self, tag, attrs):
attributes=""
for (key,value) in attrs:
if tag=="img" and key=="alt":
value = "esklappt"
attributes += ' %s="%s"' % (key,value)
self.res += "<%s%s>" % (tag, attributes)
...und hier nochmals den restliche Code :
def OnAlt(self, event):
for file in DirectoryWalker("."):
try:
html = open(file).read()
parser = aHTMLParser()
parser.feed(html)
parser.close()
html = parser.res
open(file, 'w').write(html)
print file
except:
print "diese datei konnte nicht geöffnet werden"
print "fertig mit alt ändern"
Leider ist die neugeschriebene Datei ohne Leere Zeilen und Leerschläge.
Und ich möchte eben das die Datei danach wieder gleich aussieht, drum
ist ein " pretty-printer" nicht so sinnvoll.
Danke und Gruess
Michel Koller
-----Ursprüngliche Nachricht-----
Von: python-de-bounces@python.net [mailto:python-de-bounces@python.net]
Im Auftrag von python-de-request@python.net
Gesendet: Keines
An: python-de@python.net
Betreff: python-de Nachrichtensammlung, Band 26, Eintrag 29
Um e-Mails an die Liste python-de zu schicken, nutzen Sie bitte die
Adresse
python-de@python.net
Um sich via Web von der Liste zu entfernen oder draufzusetzen:
http://python.net/mailman/listinfo/python-de
oder, via Email, schicken Sie eine Email mit dem Wort 'help' in
Subject/Betreff oder im Text an
python-de-request@python.net
Sie koennen den Listenverwalter dieser Lister unter der Adresse
python-de-owner@python.net
erreichen
Wenn Sie antworten, bitte editieren Sie die Subject/Betreff auf einen
sinnvollen Inhalt der spezifischer ist als "Re: Contents of python-de
digest..."
Meldungen des Tages:
1. Wurzel ziehen (Benjamin Kaminski)
2. Re: Wurzel ziehen (max)
3. Re: Wurzel ziehen (Wolfram Kraus)
4. Re: Wurzel ziehen (Georg Mischler)
5. Re: Wurzel ziehen (Marcus von Appen)
6. Re: Re: Wurzel ziehen (Benjamin Kaminski)
7. HTML-Datei auslesen, ändern, schreiben der Code ist onBlock
(michel.koller@globonet.ch)
8. Re: HTML-Datei auslesen, ändern , schreiben der Code ist
onBlock (Diez B. Roggisch)
----------------------------------------------------------------------
Message: 1
Date: Thu, 30 Jun 2005 14:38:14 +0200
From: Benjamin Kaminski BeKaminski@web.de
Subject: [Python-de] Wurzel ziehen
To: python-de@python.net
Message-ID: 706375710@web.de
Content-Type: text/plain; charset=iso-8859-1
Hallo,
wie zieht man unter python eigentlich die n-te wurzel aus einer zahl?
Vielen Dank.
--
Benjamin Kaminski
mailto:bekaminski@gmail.com
mailto:benjamin@kernteamer.de
________________________________________________________________________
_
Mit der Gruppen-SMS von WEB.DE FreeMail können Sie eine SMS an alle
Freunde gleichzeitig schicken:
http://freemail.web.de/features/?mc=021179
------------------------------
Message: 2
Date: Thu, 30 Jun 2005 15:53:10 +0200
From: max
maximilian_88@arcor.de
Subject: Re: [Python-de] Wurzel ziehen
To: python-de@python.net
Message-ID:
200506301553.17028.maximilian_88@arcor.de
Content-Type: text/plain; charset="iso-8859-1"
Am Donnerstag, 30. Juni 2005 14:38 schrieb Benjamin Kaminski:
> Hallo,
> wie zieht man unter python eigentlich die n-te wurzel aus einer zahl?
hoch (**) 1/n, also für die 5te Wurzel aus 32:
32**(1/5) .. dachte ich, funktioniert nicht, da 1/5 ergibt 1. Also ist
richtig:
32**(1/5.0)
>
>
> Vielen Dank.
gruß
maximilian
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname : nicht verfügbar
Dateityp : application/pgp-signature
Dateigröße : 189 bytes
Beschreibung: nicht verfügbar
URL :
http://starship.python.net/pipermail/python-de/attachments/20050630/385f
d835/attachment-0001.pgp
------------------------------
Message: 3
Date: Thu, 30 Jun 2005 15:56:18 +0200
From: Wolfram Kraus
kraus@hagen-partner.de
Subject: [Python-de] Re: Wurzel ziehen
To: python-de@python.net
Message-ID:
da0t6u$5c3$1@sea.gmane.org
Content-Type: text/plain; charset=us-ascii; format=flowed
Benjamin Kaminski wrote:
> Hallo,
> wie zieht man unter python eigentlich die n-te wurzel aus einer zahl?
>
>
> Vielen Dank.
Mit etwas Mathematik: n-te Wurzel aus x == x hoch 1/n
Oder in python:
>>> 2 ** (1/3.)
1.2599210498948732
>>> 1.2599210498948732 ** 3
2.0
HTH,
Wolfram
------------------------------
Message: 4
Date: Thu, 30 Jun 2005 09:59:18 -0400 (EDT)
From: Georg Mischler
schorsch@schorsch.com
Subject: Re: [Python-de] Wurzel ziehen
To: python-de
python-de@python.net
Message-ID:
Pine.BSF.4.58.0506300958000.77921@emancholl.pair.com
Content-Type: TEXT/PLAIN; charset=ISO-8859-1
max wrote:
> Am Donnerstag, 30. Juni 2005 14:38 schrieb Benjamin Kaminski:
> > Hallo,
> > wie zieht man unter python eigentlich die n-te wurzel aus einer
zahl?
> hoch (**) 1/n, also für die 5te Wurzel aus 32:
> 32**(1/5) .. dachte ich, funktioniert nicht, da 1/5 ergibt 1. Also ist
> richtig:
>
> 32**(1/5.0)
import math
math.sqrt(n)
-schorsch
--
Georg Mischler -- simulations developer -- schorsch at schorsch com
+schorsch.com+ -- lighting design tools --
http://www.schorsch.com/
------------------------------
Message: 5
Date: Thu, 30 Jun 2005 16:31:54 +0200
From: Marcus von Appen
mva@sysfault.org
Subject: Re: [Python-de] Wurzel ziehen
To: python-de@python.net
Message-ID:
20050630143154.GA539@medusa.sysfault.org
Content-Type: text/plain; charset=iso-8859-15
On, Thu Jun 30, 2005, Georg Mischler wrote:
> max wrote:
>
> > Am Donnerstag, 30. Juni 2005 14:38 schrieb Benjamin Kaminski:
> > > Hallo,
> > > wie zieht man unter python eigentlich die n-te wurzel aus einer
zahl?
> > hoch (**) 1/n, also für die 5te Wurzel aus 32:
> > 32**(1/5) .. dachte ich, funktioniert nicht, da 1/5 ergibt 1. Also
ist
> > richtig:
> >
> > 32**(1/5.0)
>
>
> import math
> math.sqrt(n)
>
Das gilt nur fuer die zweite Wurzel (sqrt ist die Kurzform fuer 'square
root').
gruss
Marcus
------------------------------
Message: 6
Date: Thu, 30 Jun 2005 17:59:10 +0200
From: Benjamin Kaminski
BeKaminski@web.de
Subject: Re: [Python-de] Re: Wurzel ziehen
To: python-de@python.net
Message-ID:
706620409@web.de
Content-Type: text/plain; charset=iso-8859-1
Hallo,
> Mit etwas Mathematik: n-te Wurzel aus x == x hoch 1/n
so schlau war ich auch schon.
Aber wenn man sich unter
http://de.wikipedia.org/wiki/Potenz_%28Mathematik%29 das Beispiel im
Abschnitt nicht ganzzahlige Exponenten ansieht, dann funktioniert es
nicht mehr, oder steh ich aufm schlauch?
Vielen Dank
________________________________________________________________________
_
Mit der Gruppen-SMS von WEB.DE FreeMail können Sie eine SMS an alle
Freunde gleichzeitig schicken:
http://freemail.web.de/features/?mc=021179
------------------------------
Message: 7
Date: Thu, 30 Jun 2005 19:01:31 +0200
From:
michel.koller@globonet.ch
Subject: [Python-de] HTML-Datei auslesen, ändern, schreiben der Code
ist onBlock
To:
python-de@python.net
Message-ID:
000701c57d95$5d4db520$6e00a8c0@globonet.internal
Content-Type: text/plain; charset="iso-8859-1"
Guten Tag
Ich schreibe ein Skript welches eine HTML-Datei öffnet, ausliesst nd bei
allen IMG-Tags das Attribut alt mit Text erweitert.
Das funktioniert ganz gut, aber bei der neugeschriebene Datei ist der
HTML-Code danch ganz am Block, alle Leeren Zeilen und Leerzeichen sind
verschwunden.
Ich möchte aber das die Datei danach gleich aussieht wie bevor Sie
gelesen wurde.
Ich vermute das ich da was mit dem Schreiben der Datei nicht richtig
mache, weis aber nicht was
Was mache ich da Falsch?
def OnAlt(self, event):
for file in DirectoryWalker("."):
try:
html = open(file).read()
parser = aHTMLParser()
parser.feed(html)
parser.close()
html = parser.res
open(file, 'w').write(html)
print file
except:
print "diese datei konnte nicht geöffnet werden"
print "fertig mit alt ändern"
Danke für jede Hilfe
Michel Koller
Web Developer
dipl.Webmaster ZBW
-----------------------------------------
GLOBONET GmbH
Tel +41 (0)71 914 44 00
Fax +41 (0)71 914 44 19
Email
mailto:michel.koller@globonet.ch michel.koller@globonet.ch
URL
http://www.globonet.ch www.globonet.ch
-----------------------------------------
-------------- nächster Teil --------------
Ein Dateianhang mit HTML-Daten wurde abgetrennt...
URL:
http://starship.python.net/pipermail/python-de/attachments/20050630/25da
900f/attachment-0001.htm
------------------------------
Message: 8
Date: Thu, 30 Jun 2005 19:38:40 +0200
From: "Diez B. Roggisch"
deets@web.de
Subject: Re: [Python-de] HTML-Datei auslesen, ändern , schreiben der
Code ist onBlock
To: python-de@python.net
Message-ID:
200506301938.40501.deets@web.de
Content-Type: text/plain; charset="iso-8859-1"
Am Thursday, 30. June 2005 19:01 schrieb michel.koller@globonet.ch:
> Guten Tag
>
> Ich schreibe ein Skript welches eine HTML-Datei öffnet, ausliesst nd
bei
> allen IMG-Tags das Attribut alt mit Text erweitert.
> Das funktioniert ganz gut, aber bei der neugeschriebene Datei ist der
> HTML-Code danch ganz am Block, alle Leeren Zeilen und Leerzeichen sind
> verschwunden.
> Ich möchte aber das die Datei danach gleich aussieht wie bevor Sie
> gelesen wurde.
>
> Ich vermute das ich da was mit dem Schreiben der Datei nicht richtig
> mache, weis aber nicht was
>
> Was mache ich da Falsch?
>
> def OnAlt(self, event):
> for file in DirectoryWalker("."):
> try:
> html = open(file).read()
> parser = aHTMLParser()
> parser.feed(html)
> parser.close()
> html = parser.res
> open(file, 'w').write(html)
> print file
> except:
> print "diese datei konnte nicht geöffnet werden"
> print "fertig mit alt ändern"
Das ist zwar Code und damit ein guter Start -- aber da wir weder wissen
was
aHTMLParser() zurückgibt kann man dazu nix sagen.
Aber generell schon: Der whitespace zwischen html tags (heisst auch
"insignifikant") wird von xml/html-parsern gerne überlesen bzw. nur auf
"Anfrage" rausgegeben. Denn er ist eben unerheblich in allen Tags, die
kein
#PCData oder ähnliches erlauben.
Wenn dein Problem ist das du wieder lesbarkeit herstellen willst, dann
besteht
die einfache Lösung darin deinen generierten code duch einen html
pretty-printer zu jagen. Davon gibt's genug, google hilft wie immer.
Wenn es aber _genau_ der whitespace sein soll, dann musst du das deinem
Parser
mitteilen - dazu müssen wir aber wissen, was dein parser genau ist.
MfG Diez
------------------------------
_______________________________________________
python-de maillist - python-de@python.net
http://python.net/mailman/listinfo/python-de
Ende python-de Nachrichtensammlung, Band 26, Eintrag 29
*******************************************************
_______________________________________________
python-de maillist - python-de@python.net
http://python.net/mailman/listinfo/python-de