Bereinigen einer Datei mit Split funktioniert nicht korrekt

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Raggi
User
Beiträge: 12
Registriert: Donnerstag 6. März 2008, 23:29

Bereinigen einer Datei mit Split funktioniert nicht korrekt

Beitragvon Raggi » Donnerstag 26. Februar 2009, 18:05

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.
Benutzeravatar
snafu
User
Beiträge: 5387
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Beitragvon snafu » Donnerstag 26. Februar 2009, 18:36

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)
shcol (Repo | Doc | PyPi)
Raggi
User
Beiträge: 12
Registriert: Donnerstag 6. März 2008, 23:29

Beitragvon Raggi » Montag 2. März 2009, 14:21

Klasse, das wars :-)

besten Dank!

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot]