Dummy hat geschrieben:Funktioniert prima! Das self habe ich deshalb in die Funktion gepackt, weil er sagt, dass beim Aufruf 3 Argumente übergeben werden, die funktion jedoch nur 2 Argumente hat (wahrscheinlich mache ich prinzipiell was verkehrt).
Bei Methoden wird beim Aufruf automatisch das Objekt zu der Methode als erstes Argument übergeben.
Ausserdem habe ich auch noch das Problem, dass er mir die "Prints" nicht auf der Konsole ausgibt (hast du eine Ahnung woran das liegen kann?)
Welche ``print``s? Da waren doch gar keine?
Ich habe noch ein weiteres Problem:
Ich möchte eine Datei nach einem bestimmten String durchsuchen und falls der String gefunden wird das letzte "echte" Zeichen dieser Zeile in einer Liste abspreichern.
Habe das Ganze wie folgt codiert, finde aber keinen Treffer:
Code: Alles auswählen
def parse_file(file):
set_val = []
lastChar = ""
file = open(file,'r')
for line in file.readlines():
# problem to find Sting!!!
line = line.strip()
if "// SnmpOID: " in line:
print "----- String found!!!!!!!"
print line
length =len(line)
lastChar = line[length -1]
set_val.append(lastChar)
return set_val
file.close()
Hier gibt's schon wieder Probleme mit der Einrückung. Das sieht im Beitrag anders aus, als im Editor.
Geh doch mal in Gedanken diesen Code durch:
1. Datei öffnen
2. In einer ``for``-Schleife für jede Zeile:
3. Schauen ob Zeichenkette enthalten und letztes Zeichen ermitteln
4. Die Funktion mit ``return`` beenden!
Die Datei wird nicht geschlossen und effektiv wird nur die erste Zeile überprüft.
Noch ein paar Hinweise: Variablen müssen nicht deklariert werden, das ``lastChar = ""`` ist nicht nötig.
Man sollte a) den eingebauten Namen `file` nicht an etwas anderes binden und b) möglichst nicht den gleichen Namen für verschiedene Typen benutzen, also `file` einmal für den Dateinamen und dann für die Datei selber. Das stiftet Verwirrung beim Leser.
Indexe kann man auch relativ zum Ende einer Sequenz angeben. Das hinzufügen des letzten Zeichens lässt sich so schreiben: