Ich versuche herauszufinden, wie ich Zeilenumbrüche beim Einlesen von durch Zeilenumbrüche getrennten Dateien in Python am besten beseitigen kann.
Was ich mir ausgedacht habe, ist der folgende Code, einschließlich Wegwerfcode zum Testen.
import os
def getfile(filename,results):
f = open(filename)
filecontents = f.readlines()
for line in filecontents:
foo = line.strip('\n')
results.append(foo)
return results
blahblah = []
getfile('/tmp/foo',blahblah)
for x in blahblah:
print x
Vorschläge?
Antworten:
quelle
Hier ist ein Generator, der das tut, was Sie angefordert haben. In diesem Fall ist die Verwendung von rstrip ausreichend und etwas schneller als der von strip.
Wahrscheinlich möchten Sie dies jedoch auch verwenden, um nachgestellte Leerzeichen zu entfernen.
quelle
Was denkst du über diesen Ansatz?
Der Generatorausdruck vermeidet das Laden der gesamten Datei in den Speicher und
with
stellt das Schließen der Datei sicherquelle
quelle
Verwenden Sie einfach Generatorausdrücke:
Außerdem möchte ich Ihnen davon abraten, die gesamte Datei im Speicher zu lesen. Das Schleifen über Generatoren ist bei großen Datenmengen viel effizienter.
quelle
ich benutze das
Dann kann ich so etwas machen.
Oder ich kann bereinigt mit zusätzlichen Funktionen erweitern, um beispielsweise Leerzeilen zu löschen oder Kommentarzeilen oder was auch immer zu überspringen.
quelle
Ich würde es so machen:
quelle
... if l.strip() is not ''
Ich bin mir nicht sicher, ob es beabsichtigt war, Leerzeilen zu filtern, aber dies ist prägnanter als das, was ich in meinem Fall brauche.