Ich mache einen Dateityp zum Speichern von Informationen aus meinem Programm. Der Dateityp kann Linien umfassen, beginnend mit #, wie:Entfernen Sie alle Elemente in der Liste beginnend mit #
# This is a comment.
als Kommentar gezeigt ist, bezeichnet das # vor einer Linie. Ich habe ein Programm in Python geschrieben, das diese Dateien lesen kann:
fileData = []
file = open("Tutorial.rdsf", "r")
line = file.readline()
while line != "":
fileData.append(line)
line = file.readline()
for item in list(fileData):
item.strip()
fileData = list(map(lambda s: s.strip(), fileData))
print(fileData)
Wie Sie sehen können, dauert es die Datei fügt hinzu, jede Zeile als ein Element in einer Liste, und streift die Elemente von \ n. So weit, ist es gut.
Aber oft enthalten diese Dateien Kommentare, die ich gemacht habe, und so fügt das Programm sie der Liste hinzu.
Gibt es eine Möglichkeit, alle Elemente in der Liste zu löschen, die mit # beginnen?
Edit: Um die Dinge etwas klarer: Kommentare wie dieser nicht sein wird:
Some code:
{Some Code} #Foo
Sie werden wie folgt sein:
#Foo
Some code:
{Some Code}
Verwenden Sie keine While-Schleife, sondern durchlaufen Sie die Datei direkt. Ihre 'readline' while-Schleife kann durch' fileData = file 'ersetzt werden.readlines() '(Plural) oder' fileData = Liste (Datei) '. –
Ihre 'for'-Schleife, die die Linien streift, funktioniert überhaupt nicht, weil Sie die abisolierten Linien nie zurück zuweisen. Sie müssen 'list()' no ein Objekt nicht schon eine Liste aufrufen. –
Siehe [Was ist perfektes Gegenstück in Python für "während nicht eof"] (0) stackoverflow.com/q/15599639) –