Hallo Forum,
ich habe ein Python2.5-Script in welchem ich mit subprocess.Popen ein Kommando auf der Shell absetze. Den Output hole ich mir so in eine Varaible:
retoralocks = myoralocks.stdout.read()
Der Output sieht so aus:
9099 0x19396e07:0x001af399 0:0 0 GRANTED (0x91160a48)
9099 0x19396e07:0x001af3a1 0:0 0 GRANTED (0xeb2ffbd8)
9099 0x19396e07:0x001af39b 0:0 0 GRANTED (0x926c4728)
9099 0x19396e07:0x001af39a 0:0 0 GRANTED (0xb0993d68)
9099 0x19396e07:0x001af397 0:0 0 GRANTED (0x7829bbd8)
9099 0x19396e07:0x001af396 0:0 0 GRANTED (0xed9f6bd8)
9087 0x17396d96:0x000911bb 0:0 0 GRANTED (0xaee564d0)
Nun möchte ich den Output Zeile pro Zeile bearbeiten.
"for line in retoralocks" funktioniert leider nicht so wie ich will, da er anscheinend jedes Zeichen als eigenen String interpretiert. Hat jemand einen guten Hinweis, wie man hier vorgehen könnte??
Grüße und Danke im Vorraus
Jochen
Linux Kommando -- Output pro Zeile in Stringvariable
Strings haben eine `splitlines`-Methode.
Code: Alles auswählen
for line in retoralocks.splitlines():
pass
Oder nicht alles als eine Zeichenkette lesen, sondern als Liste von Zeilen:
Oder gar nicht alles auf einmal lesen, sondern gleich über das Dateiobjekt iterieren:
Und Deine Namensgebung sieht überarbeitenswert aus.
Code: Alles auswählen
retoralocks = myoralocks.stdout.readlines()
Code: Alles auswählen
for line in myoralocks.stdout:
# Do something with `line`.
Hallo,
danke für die Antworten! Hat alles super funktioniert, aber mir perönlich hat die Methode mit "retoralocks = myoralocks.stdout.readlines()" am Besten gefallen.
Grüße und Danke
Jochen
danke für die Antworten! Hat alles super funktioniert, aber mir perönlich hat die Methode mit "retoralocks = myoralocks.stdout.readlines()" am Besten gefallen.
Grüße und Danke
Jochen
Everything was all good just a week ago...