Ich suche schon seit einiger Zeit nach einer Lösung für ein Problem, das ich habe, aber ohne Erfolg.Auf Leerzeilen prüfen und entfernen/die Zeilen darunter verschieben
Ich habe die folgende Funktion:
def showEmail():
f = open("players.txt","r")
for line in f:
lineList = line.split(";")
print "Name: " + lineList[0] + " " + lineList[1]
print "Email address: " + lineList[2]
print ""
f.close()
Meine Datei hat Text wie folgt:
Sam;Tyler;[email protected];0710503687;6;0
Peter;Bond;[email protected];0798415758;6;0
Joe;Blogg;[email protected];0749814574;1;60
Das Problem tritt auf, wenn eine leere Zeile zwangsläufig in meiner Datei erscheint (wenn eine Zeile ändern, die Das Programm erstellt eine neue Zeile ähnlich der geänderten und ändert den Wert dieser Zeile, löscht dann die ursprüngliche Zeile und kopiert die neue Zeile, also die leere Zeile, und kopiert sie in ein neues Dokument. Dies geschieht wie gezeigt. :
def writeToFile(): #function to write all new (modified) lines from players to a temps file, deletes players and rename temps to 'players'
f = open("players.txt",'r') # Input file
t = open("temp.txt", 'w') #Temp output file
for line in f:
if line != originalInfo: #doesn't write the line that is the same as the original info
t.write(line) #writes all lines apart from the original line (one that needs to be deleted)
f.close()
t.close()
os.remove("players.txt") #deletes players
os.rename('temp.txt', 'players.txt') #new file with modified info is renamed to players
Wenn die Datei der folgende enthält, mir das Programm sagen, dass die Liste Index aus gebunden ist, was Sinn macht, weil es die leere Zeile als Liste betrachtet.
Sam;Tyler;[email protected];0710503687;6;0
Peter;Bond;[email protected];0798415758;6;0
Joe;Blogg;[email protected];0749814574;1;60
Wie kann ich für dieses Problem Abhilfe schaffen? Vielen Dank!
ich bin nicht klar, auf w Der Dateischreibabschnitt 'für Zeile in f: ...' würde Leerzeilen erzeugen. Wenn die Eingabedatei keine Zeilen enthält, die ausschließlich aus "\ n" bestehen, sollte in der Ausgabe keine angezeigt werden. – TigerhawkT3
Welches Problem möchten Sie lösen: Die Schreib-Subroutine sollte keine Leerzeilen schreiben oder die Lese-Subroutine sollte mit Leerzeilen umgehen können? – manu190466
Ich musste die Datei mit 'fullName = forename +" füllen; " + Nachname + ";" + E-Mail + ";" + Telefon + ";" + Teilung + ";" + Punkte + "\ n" 'weil ohne das Hinzufügen von zwei Spielern in einer Reihe diese nebeneinander gestellt werden, nicht in einer separaten Zeile. – Johny