Seite 1 von 1

Bereinigen einer Datei mit Split funktioniert nicht korrekt

Verfasst: Donnerstag 26. Februar 2009, 18:05
von Raggi
hallo,
ich möche eine Datei öffnen (f) und Strings verändern, die teilweise Werte haben wie:
auto.auto.18/18

das soll geändert werden zu (im outfile):
auto.auto.18

Meine Frage: wieso löscht mein Skript zu viele Werte heraus? Die Textdatei hat nun entschieden zu wenig Zeilen

Code: Alles auswählen

#!/usr/bin/env python
import sys

f =open ("dirtylist.txt", 'r')
outfile=open("cleanlist.txt", 'w')

for line in f.readlines():
    if str(line).find('/') > 0:
        linearray = line.split('/')
        outfile.write(linearray[0]+"\n")
outfile.write(line+"\n") 
f.close()
outfile.close()
Dank Euch
R.

Verfasst: Donnerstag 26. Februar 2009, 18:36
von snafu
Tja, deine Schleife schreibt halt nur wenn ein Slash im Namen ist. Alle anderen Zeilen schreibt sie nicht ins Outfile. Ganz am Ende schreibt sie dann nochmal die letzte Zeile rein. Wie du siehst, spiele ich auf deine falsche Einrückung in Zeile 12 an. ;)

Probier's mal so:

Code: Alles auswählen

for line in f.readlines():
    if '/' in line:
        line = line.split('/')[0] + '\n'
    outfile.write(line)

Verfasst: Montag 2. März 2009, 14:21
von Raggi
Klasse, das wars :-)

besten Dank!