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
Code: Alles auswählen
output = a.remote_cmd('uptime')
print type(output) # Debug -> <type 'NoneType'>
for line in list(output):
print line
"TypeError: 'NoneType' object is not iterable"
Hat jemand eine Erklärung für dieses Verhalten? Wieso verändert sich der Datentyp der Variable?