Ich habe ein 54.000 Zeilenprotokoll in Python importiert, das readlines()
verwendet. Ich muss eine variable Anzahl von Zeilen aus dem Protokoll ziehen, um Server-Make und Firmware-Revisionen zu erfassen. Zum Beispiel sind hier drei Zeilen aus dem Protokoll:Durchsuchen einer Liste in Python nach einem bestimmten Element und einer Zeichenfolge im Element
# racadm getversion
<Server> <iDRAC Version> <Blade Type> <Gen> <Updatable>
server-1 1.57.57 (Build 04) PowerEdge M620 iDRAC7 Y
server-2 1.57.57 (Build 04) PowerEdge M620 iDRAC7 Y
racadm getversion
nur 1 Mal im Protokoll auftritt. Es kann irgendwo zwischen 1 Server und 32 Servern aufgeführt sein. Ich muss dieses Protokoll analysieren, um die iDRAC-Version und die Serverversion zu erfassen, und diese dann für die Klassenattribute für meine Blade-Klasse speichern (self.iDRAC
, self.model
). Es gibt noch andere Dinge, die ich erfassen muss, aber ich sollte in der Lage sein, dasselbe Konzept anzuwenden.
Wie könnte ich hinzufügen, eine Zeile (nach nicht mein eigentlicher Code ist nur ein grobes Beispiel) zu sagen:
if line in cmc.log == "# racadm getversion":
cmclist.next()
while line == "server-"
#do stuff to capture firmware
reale Arbeits Eingänge gibt Hilfe – Harvey
die Frage nicht so hilfreich sein kann, wie es sein sollte, ich habe nur keinen Zugriff auf meine Code-Dateien zu diesem Zeitpunkt. Ich habe auf eine breitere Erklärung gehofft, damit ich mich selbst unterrichten kann, anstatt eine flache Antwort zu bekommen, wenn das irgendwie hilft. – Dylan