Seite 1 von 1

in Datei Schreiben

Verfasst: Samstag 12. Mai 2007, 00:09
von lilhill2002
hi @ll habe folgende Problem
wenn ich die Zeilen in mein Datei schreibe schreibt er die zeilen alle Hintereinander ich will die aber unter einander haben könnt ihr mir helfen? bitte?

Code: Alles auswählen

# -*- coding: utf-8 -*-

import re


fileh = file('test.txt', 'r')


zerteilung = '(.*) text=(.*)'

# zB. "Bertolt Brecht" text="Wer kämpft, kann verlieren. Wer nicht kämpft, hat schon verloren."

prog = re.compile(zerteilung)
schreiben = file('text.txt', 'w')



while True:
        line = fileh.readline()
        if not line: break
        
        try:
        	result = prog.match(line)
		zitat = result.group(2)
	        print zitat
		schreiben.write(zitat,)


	except :
    		print 'Fehler'


schreiben.close()
fileh.close()

Verfasst: Samstag 12. Mai 2007, 00:47
von kbrust
Einfach ein Newline-Zeichen mit einfügen, z.B.

Code: Alles auswählen

schreiben.write(zitat+"\n")

Verfasst: Samstag 12. Mai 2007, 09:30
von lilhill2002
vielen Dank das hat supper geklappt.

hatte das auch gestern schon versucht aber anstatt "+" hatte ich ","
Danke dir :P

Verfasst: Samstag 12. Mai 2007, 10:20
von BlackJack
Dateiobjekte sind "iterable", dass heisst man kann sie in einer Schleife benutzen:

Code: Alles auswählen

for line in fileh:
    result = prog.match(line)
    if result:
        zitat = result.group(2)
        print zitat
        schreiben.write(zitat + '\n')
Und man sollte kein ``except`` ohne eine konkrete Ausnahme benutzen, sonst "verschluckt" die Ausnahmebehandlung einfach alles und das kann bei Fehlern dazu führen, dass man sie nur sehr schwer findet, weil die nötigen Informationen unterdrückt werden.