List-Object wird durch return zu NoneType-Object

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
bankkind
User
Beiträge: 106
Registriert: Freitag 14. September 2007, 23:02
Wohnort: Teltow
Kontaktdaten:

Hallo zusammen,
ich habe ein kleines Problem. Ich nutze in einem Tool Paramiko (SSH über Python).
Dort gebe ich Kommandos an Linux-Systeme weiter und will den output auswerten.
Wenn ich den Output mit meiner Methode direkt ausgebe, dann habe ich keine Probleme.
Ich will nun aber den Output als Liste über return zurückgeben.
So könnte ich später den Output besser auswerten.
Das Funktioniert jedoch nicht, denn sobald ich die zuvor erstellte Liste per return zurückliefere und darauf zugreifen will sagt mit Python "TypeError: 'NoneType' object is not iterable"

Code-Ausschnitt der Methode:

Code: Alles auswählen

stdin, stdout, stderr = ssh.exec_command(command)

output_list = []
print "stdout-objekt: "+ type(stdout) # Debug <class 'paramiko.ChannelFile'>

for output_line in stdout.readlines():
    print "output_line: "+type(output_line) # Debug <type 'list'>
    output_list.append(host+': '+output_line.strip())
    """ Wenn ich output_line.strip()) direkt per print ausgebe, dann funktioniert es auch """

for output_line in stderr.readlines():
    output_list.append(host+': '+output_line.strip())
    """ Wenn ich output_line.strip()) direkt per print ausgebe, dann funktioniert es auch """

print type(output_list) # Debug -> <type 'list'>

return output_list
So greife ich auf das ganze zu:

Code: Alles auswählen

output = a.remote_cmd('uptime')
print type(output) # Debug -> <type 'NoneType'>
for line in list(output):
    print line
Fehlermeldung:
"TypeError: 'NoneType' object is not iterable"

Hat jemand eine Erklärung für dieses Verhalten? Wieso verändert sich der Datentyp der Variable?
Zuletzt geändert von Anonymous am Sonntag 7. Juli 2013, 09:41, insgesamt 1-mal geändert.
Grund: Quelltext in Python-Code-Tags gesetzt.
Sirius3
User
Beiträge: 17741
Registriert: Sonntag 21. Oktober 2012, 17:20

@bankkind: der Fehler liegt nicht da, wo Du ihn vermutest. Ohne ein lauffähiges Beispielprogramm, das den Fehler produziert, können wir Dir hier auch nicht helfen.
Antworten