Stefan990 hat geschrieben:Code: Alles auswählen
>>> backupfile[0]
'C:\\Meine Tutorials\\tutorial_1\\Backup\\20121128_08-50\\file.rst\n'
#Hier sieht man, dass komischerweise "\n" am Ende des Pfades dabei steht. Das war in der Textdatei noch nicht der Fall.
Oh doch, das war ganz sicher der Fall. Die Anzeige \n ist nichts anderes als die Repräsentation eines Zeilenumbruchs.
Stefan990 hat geschrieben:Code: Alles auswählen
>>> backupfile[0].replace("\n", "")
'C:\\Meine Tutorials\\tutorial_1\\Backup\\20121128_08-50\\file.rst'
#Hier habe ich das "\n" mit der replace Methode "weggepfuscht"
Nein, hast du nicht. Strings sind unveränderlich. Du hast einen neuen String zurückgegeben in dem der Zeilenumbruch entfernt wurde. Du hast aber nicht den Inhalt von backupfile[0] verändert.
Es wäre bei deinem Aufbau wohl recht praktisch, wenn die zu verarbeitende Zeile den Zeilenumbruch so schnell wie möglich entfernt bekäme. Sehr flexibel ist da die
strip-Methode auf Strings. Damit entfernst du links und rechts alle Whitespaces (Leerzeichen, Zeilenumbrüche, ...).
Der Code könnte dann wie folgt verändert werden.
Vorher:
Code: Alles auswählen
with open("words.txt", 'r') as fobj:
for line in fobj:
print(repr(line))
Nachher:
Code: Alles auswählen
with open("words.txt", 'r') as fobj:
for line in fobj:
line = line.strip()
print(repr(line))
Nachher (mit Generator):
Code: Alles auswählen
with open("words.txt", 'r') as fobj:
for line in (data.strip() for data in fobj):
print(repr(line))
Solltest du
with nicht kennen, dann schau es dir an. Das wirkt erst einmal wie sehr trockener Stoff, aber es lohnt sich. Gerade im Kontext von Dateien ist das sehr interessant und dafür brauchst du die Grundlagen auch gar nicht detailliert zu kennen. Die offensichtlichste Auswirkung ist hier erst einmal, dass die Datei am Ende des with-Blocks automatisch wieder geschlossen wird. Weitere Details bei Bedarf (in einem neuen Thread?).