[Python-de] AW: python-de Nachrichtensammlung, Band 26, Eintrag 22

Gerald Klix Gerald.Klix at klix.ch
Don Jun 23 14:38:31 CEST 2005


Hi,
irgendwie kann ich mir nicht vorstellen, daß durch die Ersetzung 
Leerzeilen enstehen. Du ersetzt ja mit " " und nicht mit "".

Nachdem ein leer String den Wahrheitswert False hat kannst
du mit strip den Zeilenumbruch entfernen und dann nur
Zeile mit Inhalt schreiben.

if line.strip():
  output.append( line )

Das sollte es eigentlich tun.

Ansonsten sie noch der hinweis auf dei Funktion
"compiler" aus dem "re" modul erlaubt: 
http://docs.python.org/lib/node114.html

HTH,
Gerald

Privat schrieb:
> Guten tag 
> 
> Ich schreiben die Datei so :
> 
> def metasundtitleloeschen(dateinamen):
>     quelldatei=open(dateinamen,'r')
>     output=[]
>     for line in quelldatei:
>        line=re.sub('<title>.*?</title>','&nbsp;',line)
>        line=re.sub('<TITLE>.*?</TITLE>','&nbsp;',line)
>        line=re.sub('<META.*?>','&nbsp;',line)
>        line=re.sub('<meta.*?>','&nbsp;',line)
>        output.append(line)
>     zieldatei=open(dateinamen,'w')   
>     zieldatei.writelines(output)
>     zieldatei.close()
> 
> Leider hinterlassen die gelöschten Titles und metas leere Zeilen im
> File, und die bringe ich nicht raus.
> 
> Danke für jede Hilfe
> 
> Gruess 
> 
> Michel
> 
> 
> 
> -----Ursprüngliche Nachricht-----
> Von: python-de-bounces at python.net [mailto:python-de-bounces at python.net]
> Im Auftrag von python-de-request at python.net
> Gesendet: Keines
> An: python-de at python.net
> Betreff: python-de Nachrichtensammlung, Band 26, Eintrag 22
> 
> Um e-Mails an die Liste python-de zu schicken, nutzen Sie bitte die
> Adresse
> 
> 	python-de at 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 at python.net
> 
> Sie koennen den Listenverwalter dieser Lister unter der Adresse
> 
> 	python-de-owner at 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. Leere zeile löschen (michel.koller at globonet.ch)
>    2. Re: Leere zeile löschen (Gerald Klix)
> 
> 
> ----------------------------------------------------------------------
> 
> Message: 1
> Date: Tue, 21 Jun 2005 20:20:03 +0200
> From: <michel.koller at globonet.ch>
> Subject: [Python-de] Leere zeile löschen
> To: <python-de at python.net>
> Message-ID: <000501c5768d$d9175b20$6e00a8c0 at globonet.internal>
> Content-Type: text/plain; charset="iso-8859-1"
> 
> Guten Tag
>  
> Ich habe eine HTML-Datei die ich auslese und mit :
> re.sub('<title>.*?</title>','',line) den Titel herausselektiere 
> und dann die datei wieder schreibe, ohne Titel.
>  
> Das Problem ist dort wo vorher der Titel war, ist jetzt eine 
> leere Zeile vorhanden die ich gelöscht haben möchte, zuerst 
> dachte ich die kann man ersetzen mit einem Zeilenrückschub, 
> und habe meinen Befehl so angepasst das der Titel durch einen 
> Zeilenrückschub „\r“ ersetzt wird also :
>  
> re.sub('<title>.*?</title>','\r',line)
>  
> Das funktioniert leider nicht dort wo der Rückschub stattfinden 
> sollte steht nun ein kleines komisches ViereckSymbol, und 
> die Zeile ist immer noch präsent.
>  
> Kann mir jemand sagen wie ich eine einzelne leere Zeile löschen kann?
>  
> Vielen Dank für Hilfe
> Michel Koller  
>  
> -------------- nächster Teil --------------
> Ein Dateianhang mit HTML-Daten wurde abgetrennt...
> URL:
> http://starship.python.net/pipermail/python-de/attachments/20050621/45e1
> e089/attachment.html
> 
> ------------------------------
> 
> Message: 2
> Date: Wed, 22 Jun 2005 10:09:39 +0200
> From: Gerald Klix <Gerald.Klix at klix.ch>
> Subject: Re: [Python-de] Leere zeile löschen
> To: python-de at python.net
> Message-ID: <42B91CC3.6010705 at klix.ch>
> Content-Type: text/plain; charset=windows-1252; format=flowed
> 
> Hallo Michel,
> wie schreibst Du den die Datei?
> 
> Mit "print >>myFileObject, line"
> oder "myFileObject.write( line )"
> oder "myFileObject.write( wholeContents )"
> 
> Wenn man das nicht weiss, ists schwer Dir zu helfen.
> 
> HTH,
> Gerald
> 
> michel.koller at globonet.ch schrieb:
> 
>>Guten Tag
>>
>> 
>>
>>Ich habe eine HTML-Datei die ich auslese und mit :
>>
>>re.sub('<title>.*?</title>','',line) den Titel herausselektiere
>>
>>und dann die datei wieder schreibe, ohne Titel.
>>
>> 
>>
>>Das Problem ist dort wo vorher der Titel war, ist jetzt eine
>>
>>leere Zeile vorhanden die ich gelöscht haben möchte, zuerst
>>
>>dachte ich die kann man ersetzen mit einem Zeilenrückschub,
>>
>>und habe meinen Befehl so angepasst das der Titel durch einen
>>
>>Zeilenrückschub „\r“ ersetzt wird also :
>>
>> 
>>
>>re.sub('<title>.*?</title>','\r',line)
>>
>> 
>>
>>Das funktioniert leider nicht dort wo der Rückschub stattfinden
>>
>>sollte steht nun ein kleines komisches ViereckSymbol, und
>>
>>die Zeile ist immer noch präsent.
>>
>> 
>>
>>Kann mir jemand sagen wie ich eine einzelne leere Zeile löschen kann?
>>
>> 
>>
>>Vielen Dank für Hilfe
>>
>>Michel Koller  
>>
>> 
>>
>>
>>
> 
> ------------------------------------------------------------------------
> 
>>_______________________________________________
>>python-de maillist  -  python-de at python.net
>>http://python.net/mailman/listinfo/python-de
> 
> 

-- 
GPG-Key: http://keyserver.veridis.com:11371/search?q=0xA140D634